Last active
November 18, 2018 07:56
-
-
Save shufo/415d1f5bde33e8aebb4b98bd6f67dcc0 to your computer and use it in GitHub Desktop.
A keymap and config for my let's split rev2
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 c configuration file for the keymap | |
Copyright 2012 Jun Wako <wakojun@gmail.com> | |
Copyright 2015 Jack Humbert | |
This program is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 2 of the License, or | |
(at your option) any later version. | |
This program is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with this program. If not, see <http://www.gnu.org/licenses/>. | |
*/ | |
#ifndef CONFIG_USER_H | |
#define CONFIG_USER_H | |
#include "../../config.h" | |
/* Use I2C or Serial, not both */ | |
#define USE_SERIAL | |
// #define USE_I2C | |
/* Select hand configuration */ | |
#define MASTER_LEFT | |
// #define MASTER_RIGHT | |
// #define EE_HANDS | |
#endif | |
// #undef RGBLED_NUM | |
#define RGBLIGHT_ANIMATIONS | |
#define RGBLED_NUM 10 | |
#define MOUSEKEY_DELAY 100 | |
#define MOUSEKEY_INTERVAL 25 | |
#define MOUSEKEY_MAX_SPEED 20 | |
#define MOUSEKEY_TIME_TO_MAX 20 | |
#define MOUSEKEY_WHEEL_MAX_SPEED 8 | |
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 | |
#define TAPPING_TERM 100 |
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 "lets_split.h" | |
#include "action_layer.h" | |
#include "eeconfig.h" | |
extern keymap_config_t keymap_config; | |
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |
// entirely and just use numbers. | |
#define _QWERTY 0 | |
#define _COLEMAK 1 | |
#define _DVORAK 2 | |
#define _LOWER 3 | |
#define _RAISE 4 | |
#define _ADJUST 16 | |
#define UNDERGLOW_LAYER 6 | |
enum custom_keycodes { | |
QWERTY = SAFE_RANGE, | |
// COLEMAK, | |
// DVORAK, | |
LOWER, | |
RAISE, | |
// ADJUST, | |
}; | |
// Fillers to make layering more clear | |
#define _______ KC_TRNS | |
#define XXXXXXX KC_NO | |
#define LOWER_LALT LT(_LOWER, KC_LALT) | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
/* Qwerty | |
* ,-----------------------------------------------------------------------------------. | |
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | | |
* |------+------+------+------+------+-------------+------+------+------+------+------| | |
* | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | | |
* |------+------+------+------+------+------|------+------+------+------+------+------| | |
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | |
* |------+------+------+------+------+------+------+------+------+------+------+------| | |
* | Ctrl | GUI | MO | Alt |Lower |Space |Space |Raise | Left | Down | Up |Right | | |
* `-----------------------------------------------------------------------------------' | |
*/ | |
[_QWERTY] = KEYMAP( \ | |
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ | |
KC_LCTRL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ | |
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ | |
KC_ESC, KC_LGUI, MO(UNDERGLOW_LAYER), LALT_T(KC_LANG1), LT(_LOWER, KC_LANG1), KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | |
), | |
[UNDERGLOW_LAYER] = KEYMAP( \ | |
_______, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, \ | |
_______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, \ | |
KC_TAB, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, _______, \ | |
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ | |
), | |
/* Colemak | |
* ,-----------------------------------------------------------------------------------. | |
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | |
* |------+------+------+------+------+-------------+------+------+------+------+------| | |
* | Esc | A | R | S | T | D | H | N | E | I | O | ' | | |
* |------+------+------+------+------+------|------+------+------+------+------+------| | |
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | |
* |------+------+------+------+------+------+------+------+------+------+------+------| | |
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | | |
* `-----------------------------------------------------------------------------------' | |
*/ | |
/* [_COLEMAK] = KEYMAP( \ | |
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ | |
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ | |
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ | |
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | |
), | |
*/ | |
/* Dvorak | |
* ,-----------------------------------------------------------------------------------. | |
* | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | | |
* |------+------+------+------+------+-------------+------+------+------+------+------| | |
* | Esc | A | O | E | U | I | D | H | T | N | S | / | | |
* |------+------+------+------+------+------|------+------+------+------+------+------| | |
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | |
* |------+------+------+------+------+------+------+------+------+------+------+------| | |
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | | |
* `-----------------------------------------------------------------------------------' | |
*/ | |
/* | |
[_DVORAK] = KEYMAP( \ | |
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ | |
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ | |
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ | |
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | |
), | |
*/ | |
/* Lower | |
* ,-----------------------------------------------------------------------------------. | |
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | |
* |------+------+------+------+------+-------------+------+------+------+------+------| | |
* | Tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------| | |
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | | |
* |------+------+------+------+------+------+------+------+------+------+------+------| | |
* | | | | | | | | Next | Vol- | Vol+ | Play | | |
* `-----------------------------------------------------------------------------------' | |
*/ | |
[_LOWER] = KEYMAP( \ | |
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ | |
KC_TAB, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ | |
_______, KC_LANG1, KC_F8, KC_F9, KC_F10, KC_LCBR, KC_RCBR, S(KC_NUHS),S(KC_COMM), S(KC_DOT), S(KC_SLSH), _______, \ | |
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ | |
), | |
/* Raise | |
* ,-----------------------------------------------------------------------------------. | |
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | |
* |------+------+------+------+------+-------------+------+------+------+------+------| | |
* | Tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | |
* |------+------+------+------+------+------|------+------+------+------+------+------| | |
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | | |
* |------+------+------+------+------+------+------+------+------+------+------+------| | |
* | | | | | | | | Next | Vol- | Vol+ | Play | | |
* `-----------------------------------------------------------------------------------' | |
*/ | |
[_RAISE] = KEYMAP( \ | |
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ | |
KC_TAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ | |
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ | |
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ | |
), | |
/* Adjust (Lower + Raise) | |
* ,-----------------------------------------------------------------------------------. | |
* | | Reset| | | | | | | | | | Del | | |
* |------+------+------+------+------+-------------+------+------+------+------+------| | |
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------| | |
* | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------| | |
* | | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------' | |
*/ | |
/*[_ADJUST] = KEYMAP( \ | |
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ | |
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ | |
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | |
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ | |
) | |
*/ | |
}; | |
#ifdef AUDIO_ENABLE | |
float tone_qwerty[][2] = SONG(QWERTY_SOUND); | |
float tone_dvorak[][2] = SONG(DVORAK_SOUND); | |
float tone_colemak[][2] = SONG(COLEMAK_SOUND); | |
#endif | |
void persistent_default_layer_set(uint16_t default_layer) { | |
eeconfig_update_default_layer(default_layer); | |
default_layer_set(default_layer); | |
} | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
case QWERTY: | |
if (record->event.pressed) { | |
#ifdef AUDIO_ENABLE | |
PLAY_SONG(tone_qwerty); | |
#endif | |
persistent_default_layer_set(1UL<<_QWERTY); | |
} | |
return false; | |
break; | |
/* case COLEMAK: | |
if (record->event.pressed) { | |
#ifdef AUDIO_ENABLE | |
PLAY_SONG(tone_colemak); | |
#endif | |
persistent_default_layer_set(1UL<<_COLEMAK); | |
} | |
return false; | |
break; | |
case DVORAK: | |
if (record->event.pressed) { | |
#ifdef AUDIO_ENABLE | |
PLAY_SONG(tone_dvorak); | |
#endif | |
persistent_default_layer_set(1UL<<_DVORAK); | |
} | |
return false; | |
break; | |
*/ | |
case LOWER: | |
if (record->event.pressed) { | |
layer_on(_LOWER); | |
/* update_tri_layer(_LOWER, _RAISE, _ADJUST); */ | |
} else { | |
layer_off(_LOWER); | |
/* update_tri_layer(_LOWER, _RAISE, _ADJUST); */ | |
} | |
return false; | |
break; | |
case RAISE: | |
if (record->event.pressed) { | |
layer_on(_RAISE); | |
/* update_tri_layer(_LOWER, _RAISE, _ADJUST); */ | |
} else { | |
layer_off(_RAISE); | |
/* update_tri_layer(_LOWER, _RAISE, _ADJUST); */ | |
} | |
return false; | |
break; | |
/* | |
case ADJUST: | |
if (record->event.pressed) { | |
layer_on(_ADJUST); | |
} else { | |
layer_off(_ADJUST); | |
} | |
return false; | |
break; | |
*/ | |
} | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment