* alias KEYMAP to LAYOUT * remove KEYMAP and LAYOUT_kcpull/12870/head
@ -1,59 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _QWERTY 0 | |||
#define _FN1 1 | |||
#define _FN2 2 | |||
#define KC_ KC_TRNS | |||
#define KC_X0 LT(_FN2, KC_CAPS) | |||
#define KC_X1 MO(_FN1) | |||
#define KC_X2 BL_STEP | |||
#define KC_X3 BL_BRTG | |||
#define KC_X4 BL_TOGG | |||
#define KC_X5 BL_INC | |||
#define KC_X6 BL_DEC | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( | |||
/*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ | |||
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, | |||
/*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ | |||
TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC, BSLS , DEL ,PGDN, | |||
/*|------`----`----`----`----`----`----`----`----`----`----`----`----`------| `----`----' */ | |||
X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, ENTER , | |||
/*|-------`----`----`----`----`----`----`----`----`----`----`----`----------| ,----. */ | |||
LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , UP , | |||
/*|---------`----`----`----`----`----`----`----`----`----`----`-------------.--|----|----. */ | |||
LCTL ,LGUI ,LALT , SPACE , X1 ,RALT ,RCTL , LEFT,DOWN,RGHT | |||
/*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ | |||
), | |||
[_FN1] = LAYOUT_kc( | |||
/*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ | |||
GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , ,HOME, | |||
/*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ | |||
, , UP , , , , , , ,PSCR,SLCK,PAUS, X2 , , ,END, | |||
/*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ | |||
X0 ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , , | |||
/*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ | |||
, ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , X5 , | |||
/*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ | |||
, , , , , , , X3 , X6 , X4 | |||
/*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ | |||
), | |||
[_FN2] = LAYOUT_kc( | |||
/*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ | |||
GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, | |||
/*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ | |||
, , , UP , , , , 7 , 8 , 9 , , , , , VOLD,END, | |||
/*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ | |||
, ,LEFT,DOWN,RGHT, , , 4 , 5 , 6 , , , , | |||
/*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ | |||
, , , , , , 0 , 1 , 2 , 3 , , , MUTE, | |||
/*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ | |||
, , , , , , , MPRV,MPLY,MNXT | |||
/*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ | |||
) | |||
}; |
@ -1,10 +0,0 @@ | |||
<!-- -*- mode: markdown; fill-column: 8192 -*- --> | |||
Atreus52 Modification | |||
======================= | |||
Firmware for my custom keyboard based on the Atreus layout, but with 5 rows and only 5 columns per hand. | |||
More documentation coming soon. | |||
# License | |||
GPL-3+ |
@ -1,16 +0,0 @@ | |||
#include "../../config.h" | |||
#undef MANUFACTURER | |||
#undef PRODUCT | |||
#undef MATRIX_ROW_PINS | |||
#undef MATRIX_COL_PINS | |||
#undef DIODE_DIRECTION | |||
/* USB Device descriptor parameter */ | |||
#define MANUFACTURER Mesh Industries | |||
#define PRODUCT Atreus52 Treeboard | |||
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } | |||
#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 } | |||
#define DIODE_DIRECTION COL2ROW |
@ -1,88 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
// Layers | |||
#define DVORAK 0 | |||
#define QWERTY 1 | |||
#define RAISE 2 | |||
#define LOWER 3 | |||
#define BDO 4 | |||
#define RESETL 5 | |||
#define KC_RAIS MO(RAISE) | |||
#define KC_LOWR MO(LOWER) | |||
#define KC_TGBD TG(BDO) | |||
#define KC_TGRS TG(RESETL) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[DVORAK] = LAYOUT_kc( | |||
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ | |||
NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ | |||
NO, A, O, E, U, I, D, H, T, N, S, NO, \ | |||
NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ | |||
NO, TGBD, LALT, LCTL, LOWR, LSFT, BSPC, ENT, SPC, RAIS, LGUI, LEFT, RGHT, NO | |||
), | |||
[QWERTY] = LAYOUT_kc( | |||
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ | |||
NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ | |||
NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ | |||
NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ | |||
NO, TGBD, LALT, LCTL, LOWR, LSFT, BSPC, ENT, SPC, RAIS, LGUI, LEFT, RGHT, NO | |||
), | |||
[RAISE] = LAYOUT_kc( | |||
NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ | |||
NO, TILD, GRV, LCBR, RCBR, DQUO, QUOT, EQL, PLUS, MINS, QUES, NO, \ | |||
NO, ESC, TAB, LPRN, RPRN, BSLS, SLSH, LEFT, DOWN, UP, RGHT, NO, \ | |||
NO, TRNS, TRNS, LBRC, RBRC, TRNS, INS, PIPE, UNDS, TRNS, TRNS, NO, \ | |||
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TGRS, NO | |||
), | |||
[LOWER] = LAYOUT_kc( | |||
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ | |||
NO, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, NO, \ | |||
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ | |||
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \ | |||
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO | |||
), | |||
[BDO] = LAYOUT_kc( | |||
NO, ESC, 1, 2, 3, 4, 5, 0, SLSH, U, C, NO, \ | |||
NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \ | |||
NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \ | |||
NO, T, Z, X, C, V, 8, B, N, M, L, NO, \ | |||
NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, TGBD, NO | |||
), | |||
[RESETL] = LAYOUT( | |||
KC_NO, RESET, 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_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_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_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_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TG(RESETL),KC_NO | |||
) | |||
}; | |||
static uint8_t qw_dv_swap_state = 0; | |||
bool process_record_user (uint16_t keycode, keyrecord_t *record) { | |||
if (keycode == KC_LGUI) { | |||
if (record->event.pressed) { | |||
qw_dv_swap_state |= 0b00000001; | |||
} else { | |||
qw_dv_swap_state &= ~(0b00000001); | |||
} | |||
} | |||
if (keycode == KC_LCTL) { | |||
if (record->event.pressed) { | |||
qw_dv_swap_state |= 0b00000010; | |||
} else { | |||
qw_dv_swap_state &= ~(0b00000010); | |||
} | |||
} | |||
if (qw_dv_swap_state == 0b00000011) { | |||
layer_invert(DVORAK); | |||
} | |||
return true; | |||
} |
@ -1,4 +0,0 @@ | |||
NKRO_ENABLE = true | |||
MOUSEKEY_ENABLE = no | |||
EXTRAKEY_ENABLE = yes | |||
CONSOLE_ENABLE = no |
@ -1,9 +0,0 @@ | |||
#define TAPPING_TERM 150 | |||
#define TAPPING_TOGGLE 2 | |||
#define MOUSEKEY_DELAY 200 | |||
#define MOUSEKEY_INTERVAL 60 | |||
#define MOUSEKEY_MAX_SPEED 50 | |||
#define MOUSEKEY_TIME_TO_MAX 80 | |||
#define MOUSEKEY_WHEEL_MAX_SPEED 8 | |||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 |
@ -1,119 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
enum chimera_ortho_layers | |||
{ | |||
_BASE, | |||
_NAV, | |||
_SYM, | |||
_FUNC, | |||
_MOUSE | |||
}; | |||
#define KC_NAV MO(_NAV) | |||
#define KC_SYM MO(_SYM) | |||
#define KC_FUNC MO(_FUNC) | |||
#define KC_MOUSE TT(_MOUSE) | |||
#define KC_DELSHFT SFT_T(KC_DEL) | |||
#define KC_CTLENT CTL_T(KC_ENT) | |||
#define KC_SYMSPC LT(_SYM, KC_SPC) | |||
#define KC_WK_LEFT LCA(KC_LEFT) | |||
#define KC_WK_DOWN LCA(KC_DOWN) | |||
#define KC_WK_UP LCA(KC_UP) | |||
#define KC_WK_RGHT LCA(KC_RGHT) | |||
#define KC_QUAKE LCTL(KC_GRAVE) | |||
#define LONGPRESS_DELAY 150 | |||
// These are needed because of the 'KC_'-adding macro | |||
// This macro can be found in ../../chimera_ortho.h | |||
#define KC_RESET RESET | |||
#define KC_ KC_TRNS | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_BASE] = LAYOUT_kc( | |||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | |||
LALT ,TAB ,QUOT ,COMM ,DOT ,P ,Y ,F ,G ,C ,R ,L ,SLSH ,FUNC | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
,LGUI ,ESC ,A ,O ,E ,U ,I ,D ,H ,T ,N ,S ,MINS ,MOUSE | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
,LCTL ,DELSHFT,SCLN ,Q ,J ,K ,X ,B ,M ,W ,V ,Z ,BSPC ,ENTER | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
,LSHIFT ,NAV ,SYMSPC ,CTLENT | |||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | |||
), | |||
[_NAV] = LAYOUT_kc( | |||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | |||
, , , , , , , ,HOME ,PGDOWN ,PGUP ,END , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, ,PSCR ,MENU , , , , , ,LEFT ,DOWN ,UP ,RIGHT , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, ,CAPS ,NLCK ,INS , , , , ,WK_LEFT,WK_DOWN,WK_UP ,WK_RGHT, , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , , , | |||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | |||
), | |||
[_SYM] = LAYOUT_kc( | |||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | |||
,QUAKE ,GRAVE ,TILDE ,BSLASH ,PIPE ,LPRN ,RPRN ,7 ,8 ,9 ,SLSH ,EQUAL , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , ,EXLM ,AT ,HASH ,DLR ,LCBR ,RCBR ,4 ,5 ,6 ,ASTR ,PLUS , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , ,PERC ,CIRC ,AMPR ,ASTR ,LBRC ,RBRC ,1 ,2 ,3 ,MINUS , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , , ,0 | |||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | |||
), | |||
[_FUNC] = LAYOUT_kc( | |||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | |||
,RESET ,SLEP ,MRWD ,MPLY ,MFFD , , ,F9 ,F10 ,F11 ,F12 , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , ,PWR ,MUTE ,VOLD ,VOLU , , ,F5 ,F6 ,F7 ,F8 , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , ,WAKE ,MPRV ,MPLY ,MNXT , , ,F1 ,F2 ,F3 ,F4 , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , , , | |||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | |||
), | |||
[_MOUSE] = LAYOUT_kc( | |||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | |||
, , , , , , , , , , , , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , , ,BTN1 ,BTN3 ,BTN2 , , ,MS_L ,MS_D ,MS_U ,MS_R , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , , ,ACL0 ,ACL1 ,ACL2 , , ,WH_L ,WH_D ,WH_U ,WH_R , , | |||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | |||
, , , , | |||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | |||
), | |||
}; | |||
// These control the color of the LED on the receiver | |||
// For color reference, see ../../chimera_ortho.h | |||
void matrix_scan_user(void) { | |||
uint8_t layer = biton32(layer_state); | |||
switch (layer) { | |||
case _BASE: | |||
set_led_cyan; | |||
break; | |||
case _NAV: | |||
set_led_blue; | |||
break; | |||
case _SYM: | |||
set_led_magenta; | |||
break; | |||
case _FUNC: | |||
set_led_yellow; | |||
default: | |||
set_led_white; | |||
break; | |||
} | |||
}; |
@ -1,45 +0,0 @@ | |||
# DCompact Layout | |||
**Dvorak, Layered, Mouse-Enabled, Compact -- Plover coming soon!?!~** | |||
_See [the layout source](keymap.c) for the actual layout_ | |||
## Goals | |||
The following are the goals kept in mind when designing the DCompact | |||
layout: | |||
- Provide minimal travel distance when typing English or coding | |||
- Consistent muscle memory translation from standard QWERTY | |||
- Stateless typing experience | |||
- OS-agnostic features, macros, and key placement | |||
- Minimize dependence on mouse usage | |||
These are generally all met or balanced within reason. This layout is | |||
not intended at all to be a familiar layout for much of anyone (except | |||
maybe those who already type in Dvorak) -- this is meant to amplify the | |||
best parts of having limited, ortholinear keys with layering. | |||
## As Reference Material | |||
If you're reading this hoping to find reference material to implement | |||
your own layout, then please feel free to copy over this layout and | |||
make edits where you see fit. I removed a lot of the features I felt | |||
extraneous to my usage and simplified style where I felt needed. This | |||
would hopefully mean that my code should feel like a good base to | |||
develop from for those new to QMK. | |||
_Remember that settings defined in the layout directory override and | |||
merge with those in the keyboard folder_ | |||
## Relevant Links | |||
- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/) | |||
- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) | |||
- [QMK Docs](https://docs.qmk.fm/#/) | |||
- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes) | |||
## Contact | |||
Maintainer: [Dan](https://github.com/loksonarius) | |||
@ -1 +0,0 @@ | |||
MOUSEKEY_ENABLE = yes |
@ -1,363 +0,0 @@ | |||
// this is the style you want to emulate. | |||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard, | |||
#include QMK_KEYBOARD_H | |||
#include "version.h" | |||
#include "gordon.h" | |||
// 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 CALTDEL LCTL(LALT(KC_DEL)) | |||
#define TSKMGR LCTL(LSFT(KC_ESC)) | |||
#define KC_SNAPLEFT LGUI(KC_LEFT) | |||
#define KC_SNAPRIGHT LGUI(KC_RIGHT) | |||
#define KC_SNAPUP LGUI(KC_UP) | |||
#define KC_SNAPDOWN LGUI(KC_DOWN) | |||
#define KC_PREVTAB LCTL(LSFT(KC_TAB)) | |||
#define KC_NEXTTAB LCTL(KC_TAB) | |||
#define KC_WORKRIGHT LCTL(LGUI(KC_RIGHT)) | |||
#define KC_WORKLEFT LCTL(LGUI(KC_LEFT)) | |||
#define KC_NMPD TG(_NUMPAD) | |||
#define KC_SYMB TG(_SYMBOLS) | |||
#define KC_SCTL MT(MOD_LCTL, KC_LBRC) | |||
#define KC_SCTR MT(MOD_LCTL, KC_RBRC) | |||
#define KC_SPLT MT(MOD_LALT, KC_MINS) | |||
#define KC_SPRT MT(MOD_LALT, KC_1) | |||
#define KC_GBRC MT(MOD_RGUI, KC_8) | |||
#define KC_GQOT MT(MOD_LGUI, KC_QUOT) | |||
#define KC_CSHW MT(MOD_LCTL|MOD_LSFT,KC_W) | |||
#define KC_CDEL LCTL(KC_DEL) | |||
#define KC_AUDUP KC_AUDIO_VOL_UP | |||
#define KC_AUDOWN KC_AUDIO_VOL_DOWN | |||
#define KC_MEHS MEH_T(KC_S) | |||
#define KC_MEHL MEH_T(KC_L) | |||
#define KC_GWIN GUI_T(KC_G) | |||
#define KC_FCTL CTL_T(KC_F) | |||
#define KC_JCTL CTL_T(KC_J) | |||
#define KC_ZCTL CTL_T(KC_Z) | |||
#define KC_ALTV ALT_T(KC_V) | |||
#define KC_ALTN ALT_T(KC_N) | |||
#define KC_MEHX ALL_T(KC_X) | |||
#define KC_RESET RESET | |||
//LTs | |||
#define KC_MESC LT(_MACROS, KC_ESC) | |||
#define KC_DNUM LT(_NUMPAD, KC_D) | |||
#define KC_SPFN LT(_NAV,KC_EQL) | |||
#define KC_EMAUS LT(_MOUSE,KC_E) | |||
#define KC_ENAV LT(_NAV,KC_E) | |||
#define KC_INAV LT(_TEXTNAV,KC_I) | |||
#define KC_BSPSYM LT(_SYMBOLS,KC_BSPACE) | |||
#define KC_ENTSYM LT(_SYMBOLS,KC_ENTER) | |||
#define KC_CLNMAUS LT(_MOUSE,KC_SCOLON) | |||
#define KC_FUNC TT(_FUNCTION) | |||
//TAP DANCE | |||
#define KC_F6F7 TD(F6F7) | |||
#define KC_ALF4 TD(ALTF4) | |||
#define KC_TTT TD(TTT) | |||
#define KC_ENHM TD(HOME_END) | |||
#define KC_CLPS TD(CALC_PRINTSCREEN) | |||
#define KC_INCL M(0) | |||
#define KC_PULL M(1) | |||
#define KC_PUSH M(2) | |||
#define KC_SCAP M(3) | |||
#define KC_SCOF M(4) | |||
#define KC_CAD LALT(LCTL(KC_DEL)) | |||
#define LONGPRESS_DELAY 150 | |||
//#define LAYER_TOGGLE_DELAY 300 | |||
// Fillers to make layering more clear | |||
#define KC_ KC_TRNS | |||
/* TODO: | |||
* | |||
* DONE: RESET and CAD into macro layer. | |||
* DONE: WINUP AND WINDOWN in NAV layer | |||
* DONE: Get rid of caps layer. not sure what it is even for. | |||
* DONE: LMEH | |||
* DONE: plus, divide, multiply on left hand for num layer | |||
* DONE: F1 - F12 on a layer toggle (not a temp toggle but a one shot or something) | |||
* DONE: Volume, page up and down for mouse layer. | |||
* DONE: Add full user files - without using anything. | |||
* DONE: Insert, ctrl delete | |||
* DONE: Home and End | |||
* DONE: Printscreen | |||
* Easier way to open new terminal (instead of alt + F2) | |||
* Intellij/text navigation layer (ctrl delete could be here). | |||
* Macro for "System.exit(0)" probably macro layer and "c" | |||
* Some sort of tap dance for comma, H, right pinky, and possibly other corners. | |||
* Something more with the right hand. not sure what. | |||
* Mouse: Left scroll, right scroll | |||
* Passwords and any other macros. | |||
* LED for control | |||
* All modifiers reset | |||
* Russain layer | |||
* Hebrew layer | |||
* Get rid of stupid git pull and push macros. | |||
* | |||
*/ | |||
enum { | |||
TTT = 4, | |||
HOME_END, | |||
CALC_PRINTSCREEN | |||
}; | |||
static xtap ttt_state = { | |||
.is_press_action = true, | |||
.state = 0 | |||
}; | |||
//Already exists in gordon.c, shouldn't need this anymore | |||
/*// To activate SINGLE_HOLD, you will need to hold for 200ms first. | |||
// This tap dance favors keys that are used frequently in typing like 'f' | |||
int cur_dance (qk_tap_dance_state_t *state) { | |||
if (state->count == 1) { | |||
if (state->interrupted) { | |||
return SINGLE_TAP; | |||
} | |||
else { | |||
if (!state->pressed) return SINGLE_TAP; | |||
else return SINGLE_HOLD; | |||
} | |||
} | |||
//If count = 2, and it has been interrupted - assume that user is trying to type the letter associated | |||
//with single tap. | |||
else if (state->count == 2) { | |||
if (state->interrupted) return DOUBLE_SINGLE_TAP; | |||
else if (state->pressed) return DOUBLE_HOLD; | |||
else return DOUBLE_TAP; | |||
} | |||
else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP; | |||
else if (state->count == 3) return TRIPLE_HOLD; | |||
else return 8; //magic number. At some point this method will expand to work for more presses | |||
}*/ | |||
/* "Super tap toggle" | |||
* Basically, TT but for two or more layers for a single key. | |||
* This particular dance: | |||
* Single tap/hold - TT for Function layer | |||
* Double tap/hold - TT for Numpad layer | |||
* Triple tap/hold - TT for Mouse layer | |||
* | |||
*/ | |||
void TTT_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
ttt_state.state = cur_dance(state); | |||
switch (ttt_state.state) { | |||
case SINGLE_TAP: layer_invert(_FUNCTION); break; | |||
case SINGLE_HOLD: layer_on(_FUNCTION); break; | |||
case DOUBLE_TAP: layer_invert(_NUMPAD); break; | |||
case DOUBLE_HOLD: layer_on(_NUMPAD); break; | |||
case DOUBLE_SINGLE_TAP: layer_invert(_NUMPAD); break; | |||
case TRIPLE_TAP: layer_invert(_MOUSE); break; | |||
case TRIPLE_HOLD: layer_on(_MOUSE); break; | |||
} | |||
} | |||
void TTT_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
switch (ttt_state.state) { | |||
case SINGLE_TAP: break; | |||
case SINGLE_HOLD: layer_off(_FUNCTION); break; | |||
case DOUBLE_TAP: break; | |||
case DOUBLE_HOLD: layer_off(_NUMPAD); break; | |||
case DOUBLE_SINGLE_TAP: break; | |||
case TRIPLE_TAP: break; | |||
case TRIPLE_HOLD: layer_off(_MOUSE); break; | |||
} | |||
ttt_state.state = 0; | |||
} | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
MESC, Q ,CSHW,ENAV, R , T ,SPC , CLPS, Y , U ,INAV, O , P ,TTT, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
TAB , A , MEHS,DNUM,FCTL,GWIN,GRAVE, TILD, H ,JCTL, K ,MEHL,CLNMAUS,ENHM, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
MINUS,ZCTL,MEHX, C ,ALTV, B ,DELETE, INS ,ALTN, M ,COMM,DOT ,SLSH,UNDS, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LSHIFT,BSPSYM, SPC ,ENTSYM | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_NUMPAD] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, , , ,ASTR, , , , , 7 , 8 , 9 ,ASTR,/**/, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,MINS,PLUS,/**/,EQUAL, , , , , 4 , 5 , 6 ,PLUS, , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , ,SLSH, , , , , 1 , 2 , 3 ,SLSH, , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , 0 | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_SYMBOLS] = LAYOUT_kc( | |||
//,----+----+-----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
,EXLM, AT ,LCBR,RCBR,HASH, , ,CIRC,AMPR,ASTR,LPRN,RPRN,/**/, | |||
//|----+----+-----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,EXLM,EXLM,LPRN,RPRN , , , , ,DQUO,EQUAL,QUOTE,RCBR, , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,DOLLAR, PERC,LBRACKET,RBRACKET, , , ,PIPE,BSLASH,PLUS, , , , | |||
//|----+----+-----+----+----+----+----| |----+----+----+----+----+----+----| | |||
UNDS,/**/, ,/**/ | |||
// \-------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_FUNCTION] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
F6F7 ,F1 ,F2 ,F3 ,ALF4,F5 ,F6 , F7 ,F8 ,F9 ,F10 ,F11 ,F12 ,/**/, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_NAV] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, ,SNAPLEFT,/**/,SNAPRIGHT,, , , , , UP , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,SNAPUP,PREVTAB, ,NEXTTAB,SNAPDOWN,, , ,LEFT,DOWN,RGHT, , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, ,WORKLEFT, ,WORKRIGHT,, , , ,PGUP,PGDN, , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
CDEL ,DEL, , | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_TEXTNAV] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, , , , , , , , , ,/**/, , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_MOUSE] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, , ,MS_UP, , , , , , , UP , , , ,/**/ | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, ,MS_LEFT,MS_DOWN,MS_RIGHT, , , , ,LEFT,DOWN,RGHT,/**/, , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,MS_BTN1 ,MS_BTN2 , | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
), | |||
[_MACROS] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
/**/,RESET,SECRET_2,SECRET_3, , , ,SYSTEM_SLEEP, , ,INCL, , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
CAD ,SECRET_1, , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
SCAP, , , , , , , , , , , , ,SCAP, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , | |||
// \------------------+----+----+---/ \---+----+----+-------------------/ | |||
) | |||
}; | |||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
{ | |||
switch(id) { | |||
/* include some kind of library or header */ | |||
case 0: | |||
if (record->event.pressed) { | |||
SEND_STRING("#include <>"); | |||
return MACRO( T(LEFT), END); | |||
} | |||
break; | |||
case 1: | |||
if (record->event.pressed) { | |||
SEND_STRING("git pull"); | |||
return MACRO( T(ENT), END ); | |||
} | |||
break; | |||
case 2: | |||
if (record->event.pressed){ | |||
SEND_STRING("git push"); | |||
return MACRO( T(ENT), END ); | |||
} | |||
break; | |||
case 3: | |||
if (record->event.pressed){ | |||
// layer_on(_CAPS); | |||
// register_code(KC_CAPSLOCK); | |||
// unregister_code(KC_CAPSLOCK); | |||
} | |||
break; | |||
case 4: | |||
if (record->event.pressed){ | |||
// layer_off(_CAPS); | |||
// register_code(KC_CAPSLOCK); | |||
// unregister_code(KC_CAPSLOCK); | |||
} | |||
break; | |||
} | |||
return MACRO_NONE; | |||
}; | |||
void matrix_scan_user(void) { | |||
uint8_t layer = biton32(layer_state); | |||
switch (layer) { | |||
case _QWERTY: | |||
set_led_green; | |||
break; | |||
case _MOUSE: | |||
set_led_yellow; | |||
break; | |||
case _NUMPAD: | |||
set_led_blue; | |||
break; | |||
case _SYMBOLS: | |||
set_led_red; | |||
break; | |||
case _NAV: | |||
set_led_magenta; | |||
break; | |||
case _MACROS: | |||
set_led_green; | |||
_delay_ms(45); | |||
set_led_red; | |||
_delay_ms(45); | |||
break; | |||
case _FUNCTION: | |||
set_led_green; | |||
_delay_ms(45); | |||
set_led_blue; | |||
_delay_ms(45); | |||
break; | |||
default: | |||
set_led_green; | |||
break; | |||
} | |||
}; |
@ -1,45 +0,0 @@ | |||
/* | |||
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/>. | |||
*/ | |||
#pragma once | |||
//#define USE_MATRIX_I2C | |||
/* Select hand configuration */ | |||
#define MASTER_LEFT | |||
// #define MASTER_RIGHT | |||
// #define EE_HANDS | |||
#define SSD1306OLED | |||
#define USE_SERIAL_PD2 | |||
#define PREVENT_STUCK_MODIFIERS | |||
#define TAPPING_FORCE_HOLD | |||
#define TAPPING_TERM 250 | |||
#undef RGBLED_NUM | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLED_NUM 27 | |||
#define RGBLIGHT_LIMIT_VAL 120 | |||
#define RGBLIGHT_HUE_STEP 10 | |||
#define RGBLIGHT_SAT_STEP 17 | |||
#define RGBLIGHT_VAL_STEP 17 |
@ -1,291 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include "bootloader.h" | |||
#ifdef PROTOCOL_LUFA | |||
#include "lufa.h" | |||
#include "split_util.h" | |||
#endif | |||
#ifdef SSD1306OLED | |||
#include "ssd1306.h" | |||
#endif | |||
#include "oled_helper.h" | |||
extern keymap_config_t keymap_config; | |||
extern uint8_t is_master; | |||
// 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. | |||
enum layer_number { | |||
_BASE = 0, | |||
_LOWER, | |||
_RAISE, | |||
_ADJUST, | |||
}; | |||
enum custom_keycodes { | |||
LOWER = SAFE_RANGE, | |||
RAISE, | |||
ADJUST, | |||
KANJI, | |||
RGBRST | |||
}; | |||
enum tapdances{ | |||
TD_CODO = 0, | |||
// TD_MNUB, | |||
}; | |||
// Layer Mode aliases | |||
#define KC_LOWER LOWER | |||
#define KC_RAISE RAISE | |||
#define KC______ KC_TRNS | |||
#define KC_XXXXX KC_NO | |||
#define KC_KANJI KANJI | |||
#define KC_RST RESET | |||
#define KC_LRST RGBRST | |||
#define KC_LTOG RGB_TOG | |||
#define KC_LHUI RGB_HUI | |||
#define KC_LHUD RGB_HUD | |||
#define KC_LSAI RGB_SAI | |||
#define KC_LSAD RGB_SAD | |||
#define KC_LVAI RGB_VAI | |||
#define KC_LVAD RGB_VAD | |||
#define KC_LMOD RGB_MOD | |||
#define KC_KNRM AG_NORM | |||
#define KC_KSWP AG_SWAP | |||
#define KC_TBSF LSFT_T(KC_TAB) | |||
// #define KC_SPSF LSFT_T(KC_SPC) | |||
#define KC_ALAP LALT_T(KC_APP) | |||
#define KC_CODO TD(TD_CODO) | |||
// #define KC_MNUB TD(TD_MNUB) | |||
qk_tap_dance_action_t tap_dance_actions[] = { | |||
[TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT), | |||
// [TD_MNUB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, LSFT(KC_RO)), | |||
}; | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_BASE] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
TBSF, A, S, D, F, G, H, J, K, L, UP, ENT,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LCTRL, Z, X, C, V, B, N, M, CODO, LEFT, DOWN, RGHT,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
LGUI, LOWER, BSPC, SPC, RAISE, ALAP \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_LOWER] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
_____, F1, F2, F3, F4, F5, XXXXX, MINS, EQL, JYEN, LBRC, RBRC,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
_____, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, SCLN, QUOT, BSLS,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
_____, F11, F12, TAB, KANJI, ENT, XXXXX, XXXXX, COMM, DOT, SLSH, RO,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
_____, _____, DEL, _____, _____, APP \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_RAISE] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
_____, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, PSLS,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
_____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, QUOT, 4, 5, 6, PPLS, PAST,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
_____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 0, 1, 2, 3, DOT, PMNS,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
_____, _____, BSPC, _____, _____, LALT \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_ADJUST] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
_____, RST, LRST, KNRM, KSWP, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ | |||
//|------+-------+------+------+------+-----| |------+------+------+------+------+------| | |||
_____, LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, PGUP, XXXXX,\ | |||
//|------+-------+------+------+------+-----| |------+------+------+------+------+------| | |||
_____, LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, HOME, PGDN, END,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
_____, _____, XXXXX, _____, _____, XXXXX \ | |||
//`--------------------' `--------------------' | |||
) | |||
}; | |||
#define L_BASE _BASE | |||
#define L_LOWER (1<<_LOWER) | |||
#define L_RAISE (1<<_RAISE) | |||
#define L_ADJUST (1<<_ADJUST) | |||
#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) | |||
#ifdef SSD1306OLED | |||
typedef struct { | |||
uint8_t state; | |||
char name[8]; | |||
}LAYER_DISPLAY_NAME; | |||
#define LAYER_DISPLAY_MAX 5 | |||
const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = { | |||
{L_BASE, "Base"}, | |||
{L_BASE + 1, "Base"}, | |||
{L_LOWER, "Lower"}, | |||
{L_RAISE, "Raise"}, | |||
{L_ADJUST_TRI, "Adjust"} | |||
}; | |||
static inline const char* get_leyer_status(void) { | |||
for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) { | |||
if (layer_state == 0 && layer_display_name[i].state == default_layer_state) { | |||
return layer_display_name[i].name; | |||
} else if (layer_state != 0 && layer_display_name[i].state == layer_state) { | |||
return layer_display_name[i].name; | |||
} | |||
} | |||
return "?"; | |||
} | |||
static char layer_status_buf[24] = "Layer state ready.\n"; | |||
static inline void update_keymap_status(void) { | |||
snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n", | |||
keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status()); | |||
} | |||
static inline void render_keymap_status(struct CharacterMatrix *matrix) { | |||
matrix_write(matrix, layer_status_buf); | |||
} | |||
#define UPDATE_KEYMAP_STATUS() update_keymap_status() | |||
#define RENDER_KEYMAP_STATUS(a) render_keymap_status(a) | |||
#else | |||
#define UPDATE_KEYMAP_STATUS() | |||
#define RENDER_KEYMAP_STATUS(a) | |||
#endif | |||
static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { | |||
pressed ? layer_on(layer1) : layer_off(layer1); | |||
IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3); | |||
} | |||
int RGB_current_mode; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
UPDATE_KEY_STATUS(keycode, record); | |||
bool result = false; | |||
switch (keycode) { | |||
case LOWER: | |||
update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST); | |||
break; | |||
case RAISE: | |||
update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST); | |||
break; | |||
case KANJI: | |||
if (record->event.pressed) { | |||
if (keymap_config.swap_lalt_lgui == false) { | |||
register_code(KC_LANG2); | |||
} else { | |||
SEND_STRING(SS_LALT("`")); | |||
} | |||
} else { | |||
unregister_code(KC_LANG2); | |||
} | |||
break; | |||
#ifdef RGBLIGHT_ENABLE | |||
case RGB_MOD: | |||
if (record->event.pressed) { | |||
rgblight_mode(RGB_current_mode); | |||
rgblight_step(); | |||
RGB_current_mode = rgblight_config.mode; | |||
} | |||
break; | |||
case RGBRST: | |||
if (record->event.pressed) { | |||
eeconfig_update_rgblight_default(); | |||
rgblight_enable(); | |||
RGB_current_mode = rgblight_config.mode; | |||
} | |||
break; | |||
#endif | |||
default: | |||
result = true; | |||
break; | |||
} | |||
UPDATE_KEYMAP_STATUS(); | |||
return result; | |||
} | |||
void matrix_init_user(void) { | |||
#ifdef RGBLIGHT_ENABLE | |||
RGB_current_mode = rgblight_config.mode; | |||
UPDATE_KEYMAP_STATUS(); | |||
#endif | |||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h | |||
#ifdef SSD1306OLED | |||
iota_gfx_init(!has_usb()); // turns on the display | |||
#endif | |||
} | |||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h | |||
#ifdef SSD1306OLED | |||
void matrix_scan_user(void) { | |||
iota_gfx_task(); // this is what updates the display continuously | |||
} | |||
static inline void matrix_update(struct CharacterMatrix *dest, | |||
const struct CharacterMatrix *source) { | |||
if (memcmp(dest->display, source->display, sizeof(dest->display))) { | |||
memcpy(dest->display, source->display, sizeof(dest->display)); | |||
dest->dirty = true; | |||
} | |||
} | |||
static inline void render_status(struct CharacterMatrix *matrix) { | |||
UPDATE_LED_STATUS(); | |||
RENDER_LED_STATUS(matrix); | |||
RENDER_KEYMAP_STATUS(matrix); | |||
UPDATE_LOCK_STATUS(); | |||
RENDER_LOCK_STATUS(matrix); | |||
RENDER_KEY_STATUS(matrix); | |||
} | |||
void iota_gfx_task_user(void) { | |||
struct CharacterMatrix matrix; | |||
#if DEBUG_TO_SCREEN | |||
if (debug_enable) { | |||
return; | |||
} | |||
#endif | |||
matrix_clear(&matrix); | |||
if (is_master) { | |||
render_status(&matrix); | |||
} else { | |||
RENDER_LOGO(&matrix); | |||
} | |||
matrix_update(&display, &matrix); | |||
} | |||
#endif |
@ -1,83 +0,0 @@ | |||
#ifdef SSD1306OLED | |||
#include QMK_KEYBOARD_H | |||
#include "ssd1306.h" | |||
void render_logo(struct CharacterMatrix *matrix) { | |||
const char logo_buf[]={ | |||
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, | |||
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, | |||
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, | |||
0}; | |||
matrix_write(matrix, logo_buf); | |||
} | |||
static char keylog_buf[24] = "Key state ready."; | |||
const char code_to_name[60] = { | |||
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', | |||
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', | |||
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', | |||
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', | |||
'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ', | |||
' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '}; | |||
void update_key_status(uint16_t keycode, keyrecord_t *record) { | |||
if (!record->event.pressed) return; | |||
char name = (keycode < 60) ? code_to_name[keycode] : ' '; | |||
snprintf(keylog_buf, sizeof(keylog_buf) - 1, "Key:%dx%d %2x %c", | |||
record->event.key.row, record->event.key.col, | |||
(uint16_t)keycode, name); | |||
} | |||
void render_key_status(struct CharacterMatrix *matrix) { | |||
matrix_write(matrix, keylog_buf); | |||
} | |||
static char lock_buf[24] = "Lock state ready.\n"; | |||
void update_lock_status(void) { | |||
uint8_t leds = host_keyboard_leds(); | |||
char *num_lock = (leds & (1<<USB_LED_NUM_LOCK)) ? "Num" : ""; | |||
char *caps_lock = (leds & (1<<USB_LED_CAPS_LOCK)) ? "Caps" : ""; | |||
char *scrl_lock = (leds & (1<<USB_LED_SCROLL_LOCK)) ? "Scrn" : ""; | |||
snprintf(lock_buf, sizeof(lock_buf) - 1, "Lock:%s %s %s\n", | |||
num_lock, caps_lock, scrl_lock); | |||
} | |||
void render_lock_status(struct CharacterMatrix *matrix) { | |||
matrix_write(matrix, lock_buf); | |||
} | |||
#ifdef RGBLIGHT_ENABLE | |||
extern rgblight_config_t rgblight_config; | |||
static char led_buf[24] = "LED state ready.\n"; | |||
rgblight_config_t rgblight_config_bak; | |||
void update_led_status(void) { | |||
if (rgblight_config_bak.enable != rgblight_config.enable || | |||
rgblight_config_bak.mode != rgblight_config.mode || | |||
rgblight_config_bak.hue != rgblight_config.hue || | |||
rgblight_config_bak.sat != rgblight_config.sat || | |||
rgblight_config_bak.val != rgblight_config.val | |||
) { | |||
snprintf(led_buf, sizeof(led_buf) - 1, "LED%c:%2d hsv:%2d %2d %2d\n", | |||
rgblight_config.enable ? '*' : '.', (uint8_t)rgblight_config.mode, | |||
(uint8_t)(rgblight_config.hue / RGBLIGHT_HUE_STEP), | |||
(uint8_t)(rgblight_config.sat / RGBLIGHT_SAT_STEP), | |||
(uint8_t)(rgblight_config.val / RGBLIGHT_VAL_STEP)); | |||
rgblight_config_bak = rgblight_config; | |||
} | |||
} | |||
void render_led_status(struct CharacterMatrix *matrix) { | |||
matrix_write(matrix, led_buf); | |||
} | |||
#endif | |||
#endif |
@ -1,35 +0,0 @@ | |||
#ifdef SSD1306OLED | |||
void render_logo(struct CharacterMatrix *matrix); | |||
void update_key_status(uint16_t keycode, keyrecord_t *record); | |||
void render_key_status(struct CharacterMatrix *matrix); | |||
void update_lock_status(void); | |||
void render_lock_status(struct CharacterMatrix *matrix); | |||
#define RENDER_LOGO(a) render_logo(a) | |||
#define UPDATE_KEY_STATUS(a, b) update_key_status(a, b) | |||
#define RENDER_KEY_STATUS(a) render_key_status(a) | |||
#define UPDATE_LOCK_STATUS() update_lock_status() | |||
#define RENDER_LOCK_STATUS(a) render_lock_status(a) | |||
#ifdef RGBLIGHT_ENABLE | |||
void update_led_status(void); | |||
void render_led_status(struct CharacterMatrix *matrix); | |||
#define UPDATE_LED_STATUS() update_led_status() | |||
#define RENDER_LED_STATUS(a) render_led_status(a) | |||
#else | |||
#define UPDATE_LED_STATUS() | |||
#define RENDER_LED_STATUS(a) | |||
#endif | |||
#else | |||
#define RENDER_LOGO(a) | |||
#define UPDATE_KEY_STATUS(a, b) | |||
#define RENDER_KEY_STATUS(a) | |||
#define UPDATE_LOCK_STATUS() | |||
#define RENDER_LOCK_STATUS(a) | |||
#define UPDATE_LED_STATUS() | |||
#define RENDER_LED_STATUS(a) | |||
#endif |
@ -1,32 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = no # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. | |||
SWAP_HANDS_ENABLE = no # Enable one-hand typing | |||
TAP_DANCE_ENABLE = yes | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
Link_Time_Optimization = yes # if firmware size over limit, try this option | |||
ifeq ($(strip $(Link_Time_Optimization)),yes) | |||
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization | |||
endif | |||
# If you want to change the display of OLED, you need to change here | |||
SRC += ./lib/glcdfont.c \ | |||
oled_helper.c \ |
@ -1,51 +0,0 @@ | |||
/* | |||
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/>. | |||
*/ | |||
#pragma once | |||
//#define USE_MATRIX_I2C | |||
/* Select hand configuration */ | |||
#define MASTER_LEFT | |||
// #define MASTER_RIGHT | |||
// #define EE_HANDS | |||
#define SSD1306OLED | |||
#define USE_SERIAL_PD2 | |||
#define TAPPING_FORCE_HOLD | |||
#define TAPPING_TERM 100 | |||
#undef RGBLED_NUM | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLED_NUM 27 | |||
#define RGBLIGHT_LIMIT_VAL 120 | |||
#define RGBLIGHT_HUE_STEP 10 | |||
#define RGBLIGHT_SAT_STEP 17 | |||
#define RGBLIGHT_VAL_STEP 17 | |||
#define BACKLIGHT_LEVELS 10 | |||
#undef PRODUCT | |||
#define PRODUCT "Vee's hotswappable Helidox/Corne/CRKBD split keeb" | |||
#define NO_ACTION_MACRO | |||
#define NO_ACTION_FUNCTION |
@ -1,242 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include "bootloader.h" | |||
#ifdef PROTOCOL_LUFA | |||
#include "lufa.h" | |||
#include "split_util.h" | |||
#endif | |||
#ifdef SSD1306OLED | |||
#include "ssd1306.h" | |||
#endif | |||
extern keymap_config_t keymap_config; | |||
#ifdef RGBLIGHT_ENABLE | |||
//Following line allows macro to read current RGB settings | |||
extern rgblight_config_t rgblight_config; | |||
#endif | |||
extern uint8_t is_master; | |||
// 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 _LOWER 1 | |||
#define _RAISE 2 | |||
#define _ADJUST 3 | |||
enum custom_keycodes { | |||
QWERTY = SAFE_RANGE, | |||
LOWER, | |||
RAISE, | |||
ADJUST, | |||
BACKLIT, | |||
RGBRST | |||
}; | |||
enum macro_keycodes { | |||
KC_SAMPLEMACRO, | |||
}; | |||
#define KC______ KC_TRNS | |||
#define KC_XXXXX KC_NO | |||
#define KC_LOWER LOWER | |||
#define KC_RAISE RAISE | |||
#define KC_RST RESET | |||
#define KC_ERST EEPROM_RESET | |||
#define KC_LRST RGBRST | |||
#define KC_LTOG RGB_TOG | |||
#define KC_LHUI RGB_HUI | |||
#define KC_LHUD RGB_HUD | |||
#define KC_LSAI RGB_SAI | |||
#define KC_LSAD RGB_SAD | |||
#define KC_LVAI RGB_VAI | |||
#define KC_LVAD RGB_VAD | |||
#define KC_LMOD RGB_MOD | |||
#define KC_SFCPS SFT_T(KC_CAPS) | |||
#define KC_CTLTB CTL_T(KC_TAB) | |||
#define KC_GUIEI GUI_T(KC_LANG2) | |||
#define KC_ALTKN ALT_T(KC_LANG1) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
SFCPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
CTLTB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_LOWER] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
SFCPS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
CTLTB, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, RSFT,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_RAISE] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
TAB, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, DEL,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
SFCPS, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, BSLS,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
CTLTB, XXXXX, VOLD, VOLU, MUTE, MPLY, UNDS, PLUS, LBRC, RBRC, SLSH, RSFT,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_ADJUST] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
RST, LRST, XXXXX, XXXXX, XXXXX, ERST, MNXT, MPRV, MFFD, MRWD, XXXXX, EJCT,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LTOG, LHUI, LSAI, LVAI, PGUP, HOME, LEFT, DOWN, UP, RIGHT, XXXXX, INS,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LMOD, LHUD, LSAD, LVAD, PGDN, END, BRID, BRIU, VOLD, VOLU, MUTE, MPLY,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
) | |||
}; | |||
int RGB_current_mode; | |||
// Setting ADJUST layer RGB back to default | |||
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { | |||
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { | |||
layer_on(layer3); | |||
} else { | |||
layer_off(layer3); | |||
} | |||
} | |||
void matrix_init_user(void) { | |||
#ifdef RGBLIGHT_ENABLE | |||
RGB_current_mode = rgblight_config.mode; | |||
#endif | |||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h | |||
#ifdef SSD1306OLED | |||
iota_gfx_init(!has_usb()); // turns on the display | |||
#endif | |||
} | |||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h | |||
#ifdef SSD1306OLED | |||
// When add source files to SRC in rules.mk, you can use functions. | |||
const char *read_layer_state(void); | |||
const char *read_logo(void); | |||
void set_keylog(uint16_t keycode, keyrecord_t *record); | |||
const char *read_keylog(void); | |||
const char *read_keylogs(void); | |||
// const char *read_mode_icon(bool swap); | |||
// const char *read_host_led_state(void); | |||
// void set_timelog(void); | |||
// const char *read_timelog(void); | |||
void matrix_scan_user(void) { | |||
iota_gfx_task(); | |||
} | |||
void matrix_render_user(struct CharacterMatrix *matrix) { | |||
if (is_master) { | |||
// If you want to change the display of OLED, you need to change here | |||
matrix_write_ln(matrix, read_layer_state()); | |||
matrix_write_ln(matrix, read_keylog()); | |||
matrix_write_ln(matrix, read_keylogs()); | |||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); | |||
//matrix_write_ln(matrix, read_host_led_state()); | |||
//matrix_write_ln(matrix, read_timelog()); | |||
} else { | |||
matrix_write_ln(matrix, read_layer_state()); | |||
matrix_write_ln(matrix, read_keylog()); | |||
matrix_write_ln(matrix, read_keylogs()); | |||
//matrix_write(matrix, read_logo()); | |||
} | |||
} | |||
void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { | |||
if (memcmp(dest->display, source->display, sizeof(dest->display))) { | |||
memcpy(dest->display, source->display, sizeof(dest->display)); | |||
dest->dirty = true; | |||
} | |||
} | |||
void iota_gfx_task_user(void) { | |||
struct CharacterMatrix matrix; | |||
matrix_clear(&matrix); | |||
matrix_render_user(&matrix); | |||
matrix_update(&display, &matrix); | |||
} | |||
#endif//SSD1306OLED | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
if (record->event.pressed) { | |||
#ifdef SSD1306OLED | |||
set_keylog(keycode, record); | |||
#endif | |||
// set_timelog(); | |||
} | |||
switch (keycode) { | |||
case LOWER: | |||
if (record->event.pressed) { | |||
layer_on(_LOWER); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} else { | |||
layer_off(_LOWER); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} | |||
return false; | |||
break; | |||
case RAISE: | |||
if (record->event.pressed) { | |||
layer_on(_RAISE); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} else { | |||
layer_off(_RAISE); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} | |||
return false; | |||
break; | |||
case ADJUST: | |||
if (record->event.pressed) { | |||
layer_on(_ADJUST); | |||
} else { | |||
layer_off(_ADJUST); | |||
} | |||
return false; | |||
break; | |||
case RGB_MOD: | |||
#ifdef RGBLIGHT_ENABLE | |||
if (record->event.pressed) { | |||
rgblight_mode(RGB_current_mode); | |||
rgblight_step(); | |||
RGB_current_mode = rgblight_config.mode; | |||
} | |||
#endif | |||
return false; | |||
break; | |||
case RGBRST: | |||
#ifdef RGBLIGHT_ENABLE | |||
if (record->event.pressed) { | |||
eeconfig_update_rgblight_default(); | |||
rgblight_enable(); | |||
RGB_current_mode = rgblight_config.mode; | |||
} | |||
#endif | |||
break; | |||
} | |||
return true; | |||
} |
@ -1,18 +0,0 @@ | |||
# Reade.md for what I want from my HeliDox(CRKBD) layout | |||
====================================================== | |||
![My beloved HeliDox keeb](https://i.imgur.com/NbVAB3g.jpg) | |||
- media keys and media controls | |||
- in-switch LED intensity controls (+/-) | |||
- underglow RGB hue/color controls | |||
- underglow RGB intensity controls | |||
- familiar key arrangement with Enter and symbols on the usual keys (to the right hand side) | |||
- navigation keys should be the vim ones really; | |||
- arrow keys on one layer(most likely on the ADJUST one) | |||
See keymap.c for layouts | |||
P.S> this lil' keeb is so addictive I have no words, really... |
@ -1,32 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
EXTRAFLAGS += -flto | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. | |||
SWAP_HANDS_ENABLE = no # Enable one-hand typing | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
# If you want to change the display of OLED, you need to change here | |||
SRC += ./lib/glcdfont.c \ | |||
./lib/rgb_state_reader.c \ | |||
./lib/layer_state_reader.c \ | |||
./lib/logo_reader.c \ | |||
./lib/keylogger.c \ | |||
# ./lib/mode_icon_reader.c \ | |||
# ./lib/host_led_state_reader.c \ | |||
# ./lib/timelogger.c \ |
@ -1,16 +0,0 @@ | |||
![the-frey-layout](https://raw.githubusercontent.com/the-frey/the-frey.github.com/master/assets/images/keyboard-layout.jpg) | |||
# Keyboard layout by the-frey | |||
This is a layout that allows access to all the paren keys easily, has a tab on the lower layer (for SUPER-TAB app switching) and some utility features like PGUP/PGDOWN and HOME/END. | |||
In addition, the arrows are on the lower layer and are bound to the vim keys (h,j,k,l). I've found this a productive layout for programming in emacs and hopefully you will too. | |||
The layout image above shows the keymap, with each key marked with all three layers: | |||
- The top indicates the raise layer | |||
- The middle indicates the default layer | |||
- The bottom indicates the lower layer | |||
All the keys respond as you'd expect to the 'shift' key - i.e. on a UK/GB keyboard, `/` becomes `?` and so on. | |||
@ -1,45 +0,0 @@ | |||
/* | |||
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/>. | |||
*/ | |||
#pragma once | |||
//#define USE_MATRIX_I2C | |||
#define FORCE_NKRO | |||
/* Select hand configuration */ | |||
#define MASTER_LEFT | |||
// #define MASTER_RIGHT | |||
// #define EE_HANDS | |||
#define SSD1306OLED | |||
#define USE_SERIAL_PD2 | |||
#define TAPPING_FORCE_HOLD | |||
#define TAPPING_TERM 100 | |||
#undef RGBLED_NUM | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLED_NUM 27 | |||
#define RGBLIGHT_LIMIT_VAL 120 | |||
#define RGBLIGHT_HUE_STEP 10 | |||
#define RGBLIGHT_SAT_STEP 17 | |||
#define RGBLIGHT_VAL_STEP 17 |
@ -1,243 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include "bootloader.h" | |||
#ifdef PROTOCOL_LUFA | |||
#include "lufa.h" | |||
#include "split_util.h" | |||
#endif | |||
#ifdef SSD1306OLED | |||
#include "ssd1306.h" | |||
#endif | |||
extern keymap_config_t keymap_config; | |||
#ifdef RGBLIGHT_ENABLE | |||
//Following line allows macro to read current RGB settings | |||
extern rgblight_config_t rgblight_config; | |||
#endif | |||
extern uint8_t is_master; | |||
// 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 _LOWER 1 | |||
#define _RAISE 2 | |||
#define _ADJUST 3 | |||
enum custom_keycodes { | |||
QWERTY = SAFE_RANGE, | |||
LOWER, | |||
RAISE, | |||
ADJUST, | |||
BACKLIT, | |||
RGBRST | |||
}; | |||
enum macro_keycodes { | |||
KC_SAMPLEMACRO, | |||
}; | |||
#define KC______ KC_TRNS | |||
#define KC_XXXXX KC_NO | |||
#define KC_LOWER LOWER | |||
#define KC_RAISE RAISE | |||
#define KC_RST RESET | |||
#define KC_LRST RGBRST | |||
#define KC_LTOG RGB_TOG | |||
#define KC_LHUI RGB_HUI | |||
#define KC_LHUD RGB_HUD | |||
#define KC_LSAI RGB_SAI | |||
#define KC_LSAD RGB_SAD | |||
#define KC_LVAI RGB_VAI | |||
#define KC_LVAD RGB_VAD | |||
#define KC_LMOD RGB_MOD | |||
#define KC_CTLTB CTL_T(KC_TAB) | |||
#define KC_GUIEI GUI_T(KC_LANG2) | |||
#define KC_ALTKN ALT_T(KC_LANG1) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
CTLTB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_LOWER] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
TAB, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
CTLTB, MUTE, VOLD, VOLU, PGUP, PGDN, LEFT, DOWN, UP, RIGHT, HOME, END,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LSFT, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, XXXXX,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_RAISE] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
ESC, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, BSPC,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
CTLTB, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, GRV,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, PLUS, LBRC, RBRC, BSLS, TILD,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
), | |||
[_ADJUST] = LAYOUT_kc( \ | |||
//,-----------------------------------------. ,-----------------------------------------. | |||
RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ | |||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||
LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ | |||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||
GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ | |||
//`--------------------' `--------------------' | |||
) | |||
}; | |||
int RGB_current_mode; | |||
// Setting ADJUST layer RGB back to default | |||
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { | |||
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { | |||
layer_on(layer3); | |||
} else { | |||
layer_off(layer3); | |||
} | |||
} | |||
void matrix_init_user(void) { | |||
#ifdef RGBLIGHT_ENABLE | |||
RGB_current_mode = rgblight_config.mode; | |||
#endif | |||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h | |||
#ifdef SSD1306OLED | |||
iota_gfx_init(!has_usb()); // turns on the display | |||
#endif | |||
} | |||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h | |||
#ifdef SSD1306OLED | |||
// When add source files to SRC in rules.mk, you can use functions. | |||
const char *read_layer_state(void); | |||
const char *read_logo(void); | |||
void set_keylog(uint16_t keycode, keyrecord_t *record); | |||
const char *read_keylog(void); | |||
const char *read_keylogs(void); | |||
// const char *read_mode_icon(bool swap); | |||
// const char *read_host_led_state(void); | |||
// void set_timelog(void); | |||
// const char *read_timelog(void); | |||
void matrix_scan_user(void) { | |||
iota_gfx_task(); | |||
} | |||
void matrix_render_user(struct CharacterMatrix *matrix) { | |||
if (is_master) { | |||
// If you want to change the display of OLED, you need to change here | |||
matrix_write_ln(matrix, read_layer_state()); | |||
matrix_write_ln(matrix, read_keylog()); | |||
matrix_write_ln(matrix, read_keylogs()); | |||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); | |||
//matrix_write_ln(matrix, read_host_led_state()); | |||
//matrix_write_ln(matrix, read_timelog()); | |||
} else { | |||
matrix_write(matrix, read_logo()); | |||
} | |||
} | |||
void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { | |||
if (memcmp(dest->display, source->display, sizeof(dest->display))) { | |||
memcpy(dest->display, source->display, sizeof(dest->display)); | |||
dest->dirty = true; | |||
} | |||
} | |||
void iota_gfx_task_user(void) { | |||
struct CharacterMatrix matrix; | |||
matrix_clear(&matrix); | |||
matrix_render_user(&matrix); | |||
matrix_update(&display, &matrix); | |||
} | |||
#endif//SSD1306OLED | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
if (record->event.pressed) { | |||
#ifdef SSD1306OLED | |||
set_keylog(keycode, record); | |||
#endif | |||
// set_timelog(); | |||
} | |||
switch (keycode) { | |||
case QWERTY: | |||
if (record->event.pressed) { | |||
set_single_persistent_default_layer(_QWERTY); | |||
} | |||
return false; | |||
break; | |||
case LOWER: | |||
if (record->event.pressed) { | |||
layer_on(_LOWER); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} else { | |||
layer_off(_LOWER); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} | |||
return false; | |||
break; | |||
case RAISE: | |||
if (record->event.pressed) { | |||
layer_on(_RAISE); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} else { | |||
layer_off(_RAISE); | |||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||
} | |||
return false; | |||
break; | |||
case ADJUST: | |||
if (record->event.pressed) { | |||
layer_on(_ADJUST); | |||
} else { | |||
layer_off(_ADJUST); | |||
} | |||
return false; | |||
break; | |||
case RGB_MOD: | |||
#ifdef RGBLIGHT_ENABLE | |||
if (record->event.pressed) { | |||
rgblight_mode(RGB_current_mode); | |||
rgblight_step(); | |||
RGB_current_mode = rgblight_config.mode; | |||
} | |||
#endif | |||
return false; | |||
break; | |||
case RGBRST: | |||
#ifdef RGBLIGHT_ENABLE | |||
if (record->event.pressed) { | |||
eeconfig_update_rgblight_default(); | |||
rgblight_enable(); | |||
RGB_current_mode = rgblight_config.mode; | |||
} | |||
#endif | |||
break; | |||
} | |||
return true; | |||
} |
@ -1,31 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = no # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. | |||
SWAP_HANDS_ENABLE = no # Enable one-hand typing | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
# If you want to change the display of OLED, you need to change here | |||
SRC += ./lib/glcdfont.c \ | |||
./lib/rgb_state_reader.c \ | |||
./lib/layer_state_reader.c \ | |||
./lib/logo_reader.c \ | |||
./lib/keylogger.c \ | |||
# ./lib/mode_icon_reader.c \ | |||
# ./lib/host_led_state_reader.c \ | |||
# ./lib/timelogger.c \ |
@ -1,116 +0,0 @@ | |||
// Default ECO Layout | |||
// KLE here : http://www.keyboard-layout-editor.com/#/gists/0733eca6b4cb88ff9d7de746803f4039 | |||
#include QMK_KEYBOARD_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 _LOWER 1 | |||
#define _RAISE 2 | |||
#define _FN3 3 | |||
enum eco_keycodes { | |||
QWERTY = SAFE_RANGE, | |||
LOWER, | |||
RAISE, | |||
}; | |||
// Fillers to make layering more clear | |||
#define KC_ KC_TRNS | |||
#define KC_RST RESET | |||
#define KC_DBUG DEBUG | |||
#define KC_LOWR MO(_LOWER) | |||
#define KC_RASE MO(_RAISE) | |||
#define KC_ENTS MT(MOD_LSFT, KC_ENT) | |||
#define KC_ESCC MT(MOD_LCTL, KC_ESC) | |||
#define KC_GRVF LT(_FN3, KC_GRV) | |||
#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen | |||
#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen | |||
#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen | |||
#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen | |||
#define KC_RTOG RGB_TOG | |||
#define KC_RMOD RGB_MOD | |||
#define KC_RHUI RGB_HUI | |||
#define KC_RHUD RGB_HUD | |||
#define KC_RSAI RGB_SAI | |||
#define KC_RSAD RGB_SAD | |||
#define KC_RVAI RGB_VAI | |||
#define KC_RVAD RGB_VAD | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----+----+----+----+----. | |||
TAB , Q , W , E , R , T ,LPRN,RPRN, Y , U , I , O , P ,MINS, | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
ESCC, A , S , D , F , G ,LBRC,RBRC, H , J , K , L ,SCLN,QUOT, | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
LSFT, Z , X , C , V , B ,LCBR,RCBR, N , M ,COMM,DOT ,SLSH,ENTS, | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
GRVF,LCTL,LALT,LGUI,LOWR,SPC ,SPC ,BSPC,BSPC,RASE,LEFT,DOWN, UP ,RGHT | |||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_LOWER] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----+----+----+----+----. | |||
, 1 , 2 , 3 , 4 , 5 ,LPRN,RPRN, 6 , 7 , 8 , 9 , 0 , , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
DEL ,CAPP,LEFT,RGHT, UP ,LBRC,LBRC,RBRC,RBRC, P4 , P5 , P6 ,PLUS,PIPE, | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
,CPYP, , ,DOWN,LCBR,LCBR,RCBR,RCBR, P1 , P2 , P3 ,MINS, , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
, , , , , , ,DEL ,DEL , , P0 ,PDOT, , | |||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_RAISE] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----+----+----+----+----. | |||
,EXLM, AT ,HASH,DLR ,PERC, , ,CIRC,AMPR,ASTR,LPRN,RPRN, , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, , ,EQL ,HOME, , , ,BSLS, | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , | |||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN3] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----+----+----+----+----. | |||
F12 , F1 , F2 , F3 , F4 , F5 , , , F6 , F7 , F8 , F9 ,F10 ,F11 , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
RTOG,RMOD,RHUI,RSAI,RVAI, , , , , , , , , , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
RST ,DBUG,RHUD,RSAD,RVAD, , , , , , , , , , | |||
//|----+----+----+----+----+----+----+----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , | |||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----' | |||
), | |||
}; | |||
void persistant_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) { | |||
persistant_default_layer_set(1UL<<_QWERTY); | |||
} | |||
return false; | |||
break; | |||
} | |||
return true; | |||
} | |||
@ -1,22 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
@ -1,44 +1,11 @@ | |||
#ifndef ERGODASH_H | |||
#define ERGODASH_H | |||
#pragma once | |||
#include "quantum.h" | |||
#ifdef KEYBOARD_ergodash_rev1 | |||
#include "rev1.h" | |||
// Used to create a keymap using only KC_ prefixed keys | |||
#define LAYOUT_kc( \ | |||
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ | |||
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ | |||
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ | |||
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ | |||
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ | |||
) \ | |||
LAYOUT( \ | |||
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \ | |||
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \ | |||
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \ | |||
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, KC_##R36, \ | |||
KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45, KC_##R46 \ | |||
) | |||
#endif // #ifdef KEYBOARD_ergodash_rev1 | |||
#ifdef KEYBOARD_ergodash_mini | |||
#include "mini.h" | |||
// Used to create a keymap using only KC_ prefixed keys | |||
#define LAYOUT_kc( \ | |||
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ | |||
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ | |||
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ | |||
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36 \ | |||
) \ | |||
LAYOUT( \ | |||
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \ | |||
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \ | |||
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \ | |||
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, KC_##R36 \ | |||
) | |||
#endif // #ifdef KEYBOARD_ergodash_mini | |||
#endif |
@ -1,39 +0,0 @@ | |||
/* | |||
Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com> | |||
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/>. | |||
*/ | |||
#pragma once | |||
/* Use I2C or Serial, not both */ | |||
//#define USE_SERIAL | |||
#define USE_I2C | |||
/* Select hand configuration */ | |||
//#define MASTER_LEFT | |||
#define MASTER_RIGHT | |||
//#define EE_HANDS | |||
#define TAPPING_TOGGLE 2 | |||
#undef RGBLED_NUM | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLED_NUM 12 | |||
#define RGBLIGHT_HUE_STEP 8 | |||
#define RGBLIGHT_SAT_STEP 8 | |||
#define RGBLIGHT_VAL_STEP 8 | |||
@ -1,179 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
extern keymap_config_t keymap_config; | |||
#define _COLEMAK 0 | |||
#define _QWERTY 1 | |||
#define _NUMPAD 2 | |||
#define _LOWER 3 | |||
#define _RAISE 4 | |||
#define _ADJUST 16 | |||
enum custom_keycodes { | |||
COLEMAK = SAFE_RANGE, | |||
QWERTY, | |||
NUMPAD, | |||
LOWER, | |||
RAISE, | |||
ADJUST, | |||
}; | |||
#define KC_ KC_TRNS | |||
#define KC_XXXX KC_NO | |||
#define KC_CMK COLEMAK | |||
#define KC_QWE QWERTY | |||
#define KC_LOWR LOWER | |||
#define KC_RASE RAISE | |||
#define KC_QRAS QRAISE | |||
#define KC_ADJT ADJUST | |||
#define KC_RST RESET | |||
#define KC_BL_S BL_STEP | |||
#define KC_DBUG DEBUG | |||
#define KC_RTOG RGB_TOG | |||
#define KC_RMOD RGB_MOD | |||
#define KC_RHUI RGB_HUI | |||
#define KC_RHUD RGB_HUD | |||
#define KC_RSAI RGB_SAI | |||
#define KC_RSAD RGB_SAD | |||
#define KC_RVAI RGB_VAI | |||
#define KC_RVAD RGB_VAD | |||
//#define KC_CATDEL LCTL(LALT(KC_DEL)) // Ctrl alt del | |||
#define KC_CPY LCTL(KC_C) | |||
#define KC_PST LCTL(KC_V) | |||
#define KC_SELA LCTL(KC_A) | |||
#define KC_UDO LCTL(KC_Z) | |||
#define KC_CUT LCTL(KC_X) | |||
#define KC_SVE LCTL(KC_S) | |||
#define KC_OSH OSM(MOD_LSFT) | |||
#define KC_OCTL OSM(MOD_LCTL) | |||
#define KC_NUMP TT(_NUMPAD) | |||
#define KC_SHESC MT(MOD_LSFT,KC_ESC) | |||
#define KC_SHENT MT(MOD_RSFT,KC_ENT) | |||
//#define KC_NUMP TG(_NUMPAD) // Toggle layer NUMPAD for use in KC_keymaps | |||
//#define KC_RST RESET | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
// Colemak Mod-DH is used. https://colemakmods.github.io/mod-dh/ | |||
[_COLEMAK] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
TAB , Q , W , F , P , B ,LPRN, RPRN, J , L , U , Y ,SCLN,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
BSPC, A , R , S , T , G ,EQL , MINS, K , N , E , I , O ,QUOT, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
SHESC, Z , X , C , D , V ,NUMP, ENT, M , H ,COMM,DOT ,SLSH,SHENT, | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
OCTL,LALT,LGUI,DEL ,LOWR, SPC, OSH, RASE,LEFT,RIGHT,RALT,RCTL | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_QWERTY] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
ESC , Q , W , E , R , T ,LBRC, RBRC, Y , U , I , O , P ,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
TAB , A , S , D , F , G ,LPRN, RPRN, H , J , K , L ,SCLN,QUOT, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LSFT, Z , X , C , V , B , , , N , M ,COMM,DOT ,SLSH,ENT , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
LCTL,LGUI,LALT,DEL , , SPC, SPC , ,LEFT,DOWN, UP ,RIGHT | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_NUMPAD] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, , , , , , , ,ASTR, P7 , P8 , P9 ,SLSH, , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , ,PIPE, P4 , P5 , P6 ,MINS, , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , ,COMM, P1 , P2 , P3 ,PLUS, , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , P0 ,NLCK, , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_LOWER] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
,XXXX,XXXX,XXXX,XXXX,CAPS, , ,PGUP,HOME, UP ,END ,DEL , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,SELA,LALT,LSFT,LCTL,SVE , , ,PGDN,LEFT,DOWN,RGHT,BSPC,INS , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,UDO ,CUT ,CPY ,PST ,XXXX, , ,XXXX,XXXX,COMM,DOT ,SLSH, , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_RAISE] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
,AMPR,PERC,HASH,EXLM,LPRN, , ,ASTR,RPRN, AT ,DLR ,CIRC,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, 7 , 5 , 3 , 1 , 9 ,LBRC, RBRC, 8 , 0 , 2 , 4 , 6 ,BSLS, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, GRV,TILD,XXXX,EQL ,PLUS, , ,UNDS,MINS,COMM,DOT ,SLSH,ENT , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_ADJUST] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, F1 , F2 , F3 , F4 , F5 , F6, F7, F8, F9 ,F10 , F11, F12,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , CMK,QWE , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , ,VOLD,VOLU,MUTE | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
) | |||
}; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case COLEMAK: | |||
if (record->event.pressed) { | |||
set_single_persistent_default_layer(_COLEMAK); | |||
} | |||
return false; | |||
break; | |||
case QWERTY: | |||
if (record->event.pressed) { | |||
set_single_persistent_default_layer(_QWERTY); | |||
} | |||
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; | |||
} |
@ -1,38 +0,0 @@ | |||
/* | |||
Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com> | |||
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/>. | |||
*/ | |||
#pragma once | |||
/* Use I2C or Serial, not both */ | |||
#define USE_SERIAL | |||
// #define USE_I2C | |||
/* Select hand configuration */ | |||
#define MASTER_LEFT | |||
// #define MASTER_RIGHT | |||
// #define EE_HANDS | |||
#undef RGBLED_NUM | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLED_NUM 12 | |||
#define RGBLIGHT_HUE_STEP 8 | |||
#define RGBLIGHT_SAT_STEP 8 | |||
#define RGBLIGHT_VAL_STEP 8 | |||
@ -1,128 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
extern keymap_config_t keymap_config; | |||
#define _QWERTY 0 | |||
#define _LOWER 1 | |||
#define _RAISE 2 | |||
#define _ADJUST 16 | |||
enum custom_keycodes { | |||
QWERTY = SAFE_RANGE, | |||
LOWER, | |||
RAISE, | |||
ADJUST, | |||
}; | |||
#define KC_ KC_TRNS | |||
#define KC_LOWR LOWER | |||
#define KC_RASE RAISE | |||
#define KC_ADJT ADJUST | |||
#define KC_RST RESET | |||
#define KC_BL_S BL_STEP | |||
#define KC_DBUG DEBUG | |||
#define KC_RTOG RGB_TOG | |||
#define KC_RMOD RGB_MOD | |||
#define KC_RHUI RGB_HUI | |||
#define KC_RHUD RGB_HUD | |||
#define KC_RSAI RGB_SAI | |||
#define KC_RSAD RGB_SAD | |||
#define KC_RVAI RGB_VAI | |||
#define KC_RVAD RGB_VAD | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
ESC , Q , W , E , R , T ,LBRC, RBRC, Y , U , I , O , P ,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
TAB , A , S , D , F , G , A, A, H , J , K , L ,SCLN,QUOT, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LSFT, Z , X , C , V , B , A, SPC, N , M ,COMM,DOT ,SLSH,ENT , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
LCTL,LGUI,LALT,ADJT,LOWR,SPC, SPC, RASE,LEFT, UP ,DOWN,RIGHT | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_LOWER] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
GRAVE, 1 , 2 , 3 , 4 , 5 , A, B, 6 , 7 , 8 , 9 , 0 ,DEL, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
TAB , F1 , F2 , F3 , F4 , F5 , F6 , D, Y ,MINS, EQL,LBRC,RBRC,BSLS, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LSFT, F7 , F8 , F9 , F10, F11, F12, SPC, N , M ,COMM,DOT ,SLSH,ENT , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
LCTL,LGUI,LALT,ADJT,LOWR,SPC, SPC, RASE,LEFT, UP ,DOWN,RIGHT | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_RAISE] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
ESC , 1 , 2 , 3 , 4 , 5 , A, B, 6 , 7 , 8 , 9 , 0 ,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
TAB , Q , W , E , R , T , C , D, Y , U , I , O , P ,DEL , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LSFT, Z , X , C , V , B , A, SPC, N , M ,COMM,DOT ,SLSH,ENT , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
LCTL,LGUI,LALT,ADJT,LOWR,SPC, SPC, RASE,LEFT, UP ,DOWN,RIGHT | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_ADJUST] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
ESC , F1 , F2 , F3 , F4 , F5 , F6, F7, F8, F9 ,F10 , F11, F12,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
TAB , Q , W , E , R , T , C , D, Y , U , I , O , P ,DEL , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LSFT, Z , X , C , V , B , A, SPC, N , M ,COMM,DOT ,SLSH,ENT , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
LCTL,LGUI,LALT,ADJT,LOWR,SPC, SPC, RASE,LEFT, UP ,DOWN,RIGHT | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
) | |||
}; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case QWERTY: | |||
if (record->event.pressed) { | |||
set_single_persistent_default_layer(_QWERTY); | |||
} | |||
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; | |||
} |
@ -1,38 +0,0 @@ | |||
/* | |||
Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com> | |||
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/>. | |||
*/ | |||
#pragma once | |||
/* Use I2C or Serial, not both */ | |||
#define USE_SERIAL | |||
// #define USE_I2C | |||
/* Select hand configuration */ | |||
//#define MASTER_LEFT | |||
#define MASTER_RIGHT | |||
// #define EE_HANDS | |||
#undef RGBLED_NUM | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLED_NUM 26 | |||
#define RGBLIGHT_HUE_STEP 20 | |||
#define RGBLIGHT_SAT_STEP 20 | |||
#define RGBLIGHT_VAL_STEP 20 | |||
#define RGBLIGHT_LIMIT_VAL 220 | |||
@ -1,326 +0,0 @@ | |||
#include "ergotravel.h" | |||
#include "action_layer.h" | |||
#include "eeconfig.h" | |||
#include "mousekey.h" | |||
#include "process_unicode.h" | |||
extern keymap_config_t keymap_config; | |||
#define _QWERTY 0 | |||
#define _NUMBERS 1 | |||
#define _SYMBOLS 2 | |||
#define _CODING 3 | |||
#define _NAVIGATION 4 | |||
#define _ADJUST 16 | |||
enum custom_keycodes { | |||
QWERTY = SAFE_RANGE, | |||
ADJUST, | |||
CODING_SPACE, | |||
NUMBERS_SPACE, | |||
SYMBOLS_SPACE, | |||
NAVIGATE_SPACE, | |||
TABLE_FLIP, | |||
RESET_TABLE, | |||
SHRUG, | |||
LOOK_OF_DISAPPROVAL | |||
}; | |||
#define KC_ KC_TRNS | |||
#define KC_ADJT MO(_ADJUST) | |||
#define KC_RST RESET | |||
#define KC_BL_S BL_STEP | |||
#define KC_DBUG DEBUG | |||
#define KC_RTOG RGB_TOG | |||
#define KC_RMOD RGB_MOD | |||
#define KC_RHUI RGB_HUI | |||
#define KC_RHUD RGB_HUD | |||
#define KC_RSAI RGB_SAI | |||
#define KC_RSAD RGB_SAD | |||
#define KC_RVAI RGB_VAI | |||
#define KC_RVAD RGB_VAD | |||
#define KC_RSEN MT(MOD_RSFT, KC_ENT) // Tap for enter, hold for right shift | |||
#define KC_LCCA MT(MOD_LCTL, KC_CAPS) // Tap for caps lock, hold for left control | |||
#define KC_SHDE MT(MOD_LSFT, KC_DEL) // Tap for delete, hold for left shift | |||
#define KC_NAVI MO(_NAVIGATION) | |||
#define KC_COSP CODING_SPACE | |||
#define KC_NUSP NUMBERS_SPACE | |||
#define KC_SYSP SYMBOLS_SPACE | |||
#define KC_NASP NAVIGATE_SPACE | |||
#define KC_FLIP TABLE_FLIP | |||
#define KC_TSET RESET_TABLE | |||
#define KC_SRUG SHRUG | |||
#define KC_DISA LOOK_OF_DISAPPROVAL | |||
#define KC_RST RESET | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
TAB , Q , W , E , R , T ,HOME, PGUP, Y , U , I , O , P ,BSPC, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
LCCA, A , S , D , F , G ,END , PGDN, H , J , K , L ,SCLN,QUOT, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
SHDE, Z , X , C , V , B ,LGUI, RALT, N , M ,COMM,DOT ,SLSH,RSEN, | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
ESC ,ADJT,LALT,ENT ,NUSP,NASP, SYSP,COSP,RCTL,NAVI,ADJT,DEL | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_NUMBERS] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
GRAVE, 1 , 2 , 3 , 4 , 5 ,MPLY, VOLU, 6 , 7 , 8 , 9 , 0 , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , ,MNXT, VOLD,FLIP,TSET,SRUG,DISA, , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_SYMBOLS] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
GRAVE,EXLM, AT ,HASH,DLR ,PERC,MPLY, VOLU,CIRC,AMPR,ASTR,LPRN,RPRN,BSLS, | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , ,MNXT, VOLD, , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_CODING] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, , ,LCBR,RCBR, ,MPLY, VOLU, ,AMPR,PIPE,DLR , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , ,LPRN,RPRN, ,MNXT, VOLD, ,UNDS,MINS,ASTR, , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , ,LBRC,RBRC, , , , ,PLUS,EQL , , , , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_NAVIGATION] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
, , , UP , , ,MPLY, VOLU,WH_U,BTN1,MS_U,BTN1, , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, ,LEFT,DOWN,RGHT, ,MNXT, VOLD,WH_D,MS_L,MS_D,MS_R, , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
, , , , , , , , , , , , , , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
), | |||
[_ADJUST] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | |||
F1 ,F2 ,F3 ,F4 ,F5 ,F6 , , ,F7 ,F8 ,F9 ,F10 ,F11 ,F12 , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,RTOG,RVAI,RHUI,RSAI, , , , , , , , , , | |||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | |||
,RMOD,RVAD,RHUD,RSAD, , , ,RST , , , , , , | |||
//|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| | |||
, , , , , , , , , , , | |||
//`----+----+----+--+-+----/----/ \----\----+----+----+----+----' | |||
) | |||
}; | |||
#ifdef AUDIO_ENABLE | |||
float tone_qwerty[][2] = SONG(QWERTY_SOUND); | |||
#endif | |||
void persistent_default_layer_set(uint16_t default_layer) { | |||
eeconfig_update_default_layer(default_layer); | |||
default_layer_set(default_layer); | |||
} | |||
uint16_t custom_lt_timer; | |||
keypos_t prv_key_pressed; | |||
// Runs just one time when the keyboard initializes. | |||
void matrix_init_user(void) { | |||
// set_unicode_input_mode(UC_LNX); // Linux | |||
set_unicode_input_mode(UC_OSX); // Mac OSX | |||
// set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki) | |||
//set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki) | |||
}; | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
if(record->event.pressed) prv_key_pressed = record->event.key; | |||
#define IS_KEYPOS_SAME(keyone,keytwo) ((keyone.col==keytwo.col)&&(keyone.row==keytwo.row)) | |||
#define ANOTHER_KEY_PRESSED (!IS_KEYPOS_SAME(prv_key_pressed, record->event.key)) | |||
inline void tap(uint16_t keycode) { | |||
register_code(keycode); | |||
unregister_code(keycode); | |||
}; | |||
inline void swapInput(void) { | |||
register_code(KC_LGUI); | |||
tap(KC_SPC); | |||
unregister_code(KC_LGUI); | |||
}; | |||
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 CODING_SPACE: | |||
if (record->event.pressed) { | |||
custom_lt_timer = timer_read(); | |||
layer_on(_CODING); | |||
} else { | |||
layer_off(_CODING); | |||
if (timer_elapsed(custom_lt_timer)<150 && (!ANOTHER_KEY_PRESSED)) { | |||
register_code(KC_SPC); | |||
unregister_code(KC_SPC); | |||
} | |||
} | |||
return false; | |||
break; | |||
case NUMBERS_SPACE: | |||
if (record->event.pressed) { | |||
custom_lt_timer = timer_read(); | |||
layer_on(_NUMBERS); | |||
} else { | |||
layer_off(_NUMBERS); | |||
if (timer_elapsed(custom_lt_timer)<150 && (!ANOTHER_KEY_PRESSED)) { | |||
register_code(KC_SPC); | |||
unregister_code(KC_SPC); | |||
} | |||
} | |||
return false; | |||
break; | |||
case SYMBOLS_SPACE: | |||
if (record->event.pressed) { | |||
custom_lt_timer = timer_read(); | |||
layer_on(_SYMBOLS); | |||
} else { | |||
layer_off(_SYMBOLS); | |||
if (timer_elapsed(custom_lt_timer)<150 && (!ANOTHER_KEY_PRESSED)) { | |||
register_code(KC_SPC); | |||
unregister_code(KC_SPC); | |||
} | |||
} | |||
return false; | |||
break; | |||
case NAVIGATE_SPACE: | |||
if (record->event.pressed) { | |||
custom_lt_timer = timer_read(); | |||
layer_on(_NAVIGATION); | |||
} else { | |||
layer_off(_NAVIGATION); | |||
if (timer_elapsed(custom_lt_timer)<150 && (!ANOTHER_KEY_PRESSED)) { | |||
register_code(KC_SPC); | |||
unregister_code(KC_SPC); | |||
} | |||
} | |||
return false; | |||
break; | |||
case TABLE_FLIP: | |||
if (record->event.pressed) { | |||
swapInput(); | |||
register_code(KC_RSFT); | |||
tap(KC_9); | |||
unregister_code(KC_RSFT); | |||
process_unicode((0x256F|QK_UNICODE), record); // Arm | |||
process_unicode((0x00B0|QK_UNICODE), record); // Eye | |||
process_unicode((0x25A1|QK_UNICODE), record); // Mouth | |||
process_unicode((0x00B0|QK_UNICODE), record); // Eye | |||
register_code(KC_RSFT); | |||
tap(KC_0); | |||
unregister_code(KC_RSFT); | |||
process_unicode((0x256F|QK_UNICODE), record); // Arm | |||
tap(KC_SPC); | |||
process_unicode((0x0361|QK_UNICODE), record); // Flippy | |||
tap(KC_SPC); | |||
process_unicode((0x253B|QK_UNICODE), record); // Table | |||
process_unicode((0x2501|QK_UNICODE), record); // Table | |||
process_unicode((0x253B|QK_UNICODE), record); // Table | |||
swapInput(); | |||
} | |||
return false; | |||
break; | |||
case RESET_TABLE: // ┬──┬ ノ( ゜-゜ノ) | |||
if (record->event.pressed) { | |||
swapInput(); | |||
process_unicode((0x252C|QK_UNICODE), record); // Table | |||
process_unicode((0x2500|QK_UNICODE), record); // Table | |||
process_unicode((0x2500|QK_UNICODE), record); // Table | |||
process_unicode((0x252C|QK_UNICODE), record); // Table | |||
tap(KC_SPC); | |||
process_unicode((0x30CE|QK_UNICODE), record); // Arm | |||
register_code(KC_RSFT); | |||
tap(KC_9); | |||
unregister_code(KC_RSFT); | |||
tap(KC_SPC); | |||
process_unicode((0x309C|QK_UNICODE), record); // Eye | |||
tap(KC_MINS); | |||
process_unicode((0x309C|QK_UNICODE), record); // Eye | |||
process_unicode((0x30CE|QK_UNICODE), record); // Arm | |||
register_code(KC_RSFT); | |||
tap(KC_0); | |||
unregister_code(KC_RSFT); | |||
swapInput(); | |||
} | |||
return false; | |||
break; | |||
case SHRUG: // ¯\_(ツ)_/¯ | |||
if (record->event.pressed) { | |||
swapInput(); | |||
process_unicode((0x00AF|QK_UNICODE), record); // Hand | |||
tap(KC_BSLS); // Arm | |||
register_code(KC_RSFT); | |||
tap(KC_UNDS); // Arm | |||
tap(KC_LPRN); // Head | |||
unregister_code(KC_RSFT); | |||
process_unicode((0x30C4|QK_UNICODE), record); // Face | |||
register_code(KC_RSFT); | |||
tap(KC_RPRN); // Head | |||
tap(KC_UNDS); // Arm | |||
unregister_code(KC_RSFT); | |||
tap(KC_SLSH); // Arm | |||
process_unicode((0x00AF|QK_UNICODE), record); // Hand | |||
swapInput(); | |||
} | |||
return false; | |||
break; | |||
case LOOK_OF_DISAPPROVAL: // ಠ_ಠ | |||
if(record->event.pressed){ | |||
swapInput(); | |||
process_unicode((0x0CA0|QK_UNICODE), record); // Eye | |||
register_code(KC_RSFT); | |||
tap(KC_MINS); | |||
unregister_code(KC_RSFT); | |||
process_unicode((0x0CA0|QK_UNICODE), record); // Eye | |||
swapInput(); | |||
} | |||
return false; | |||
break; | |||
} | |||
return true; | |||
} |
@ -1,4 +0,0 @@ | |||
RGBLIGHT_ENABLE = yes | |||
BACKLIGHT_ENABLE = no | |||
UNICODE_ENABLE = yes | |||
@ -1,5 +0,0 @@ | |||
#pragma once | |||
#define SOLENOID_ENABLE | |||
#define SOLENOID_PIN F6 | |||
#define SOLENOID_ACTIVE true |
@ -1,56 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#include "mtdjr.h" | |||
extern keymap_config_t keymap_config; | |||
#define KC_LOCK TD(TD_ALTLOCK) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = LAYOUT_kc( | |||
// ,----+-----+-----+-----+-----+-----, ,----+-----+-----+-----+-----+-----, | |||
TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, | |||
// |----+-----+-----+-----+-----+-----|-, ,-|----+-----+-----+-----+-----+-----| | |||
LGUI, LOWR, SPC, SPC, RASE, LOCK | |||
// `----+-----+-----` `----+-----+-----` | |||
), | |||
[_LOWER] = LAYOUT_kc( | |||
// ,----+-----+-----+-----+-----+-----, ,----+-----+-----+-----+-----+-----, | |||
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
, , , , , , , , , LCBR, RCBR, BSLS, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
, , , XCPY, XINS, , , , , , , , | |||
// |----+-----+-----+-----+-----+-----|-, ,-|----+-----+-----+-----+-----+-----| | |||
, , , , , | |||
// `----+-----+-----` `----+-----+-----` | |||
), | |||
[_RAISE] = LAYOUT_kc( | |||
// ,----+-----+-----+-----+-----+-----, ,----+-----+-----+-----+-----+-----, | |||
GRV, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, DEL, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
, , , , MINS, EQL, , , UP, LBRC, RBRC, PIPE, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
, , , , , , , LEFT, DOWN, RGHT, , , | |||
// |----+-----+-----+-----+-----+-----|-, ,-|----+-----+-----+-----+-----+-----| | |||
, , , , , | |||
// `----+-----+-----` `----+-----+-----` | |||
), | |||
[_ADJUST] = LAYOUT_kc( | |||
// ,----+-----+-----+-----+-----+-----, ,----+-----+-----+-----+-----+-----, | |||
STOG, xxxx, xxxx, xxxx, RST, xxxx, ROOT, PPLY, PSEF, xxxx, xxxx, CAD, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
SDM, SDP, SBOF, SBON, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, | |||
// |----+-----+-----+-----+-----+-----| |----+-----+-----+-----+-----+-----| | |||
xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, | |||
// |----+-----+-----+-----+-----+-----|-, ,-|----+-----+-----+-----+-----+-----| | |||
xxxx, , xxxx, xxxx, , xxxx | |||
// `----+-----+-----` `----+-----+-----` | |||
) | |||
}; |
@ -1 +0,0 @@ | |||
TAP_DANCE_ENABLE = yes |
@ -1,68 +0,0 @@ | |||
# Default keymap | |||
This keymap is to serve as an example of how you could make a multi-layer keymap. | |||
#### keymap | |||
``` | |||
[base] = LAYOUT_kc( | |||
// ┌────────┬────────┬────────┐ | |||
DEL , SPC , ENT , | |||
// ├────────┼────────┼────────┼────────┼ | |||
LEFT , DOWN , UP , RGHT , | |||
// ├────────┼────────┼────────┼────────┼ | |||
SHRK , OGRE , TCP | |||
// └────────┴────────┴────────┘ | |||
), | |||
[shrek] = LAYOUT_kc( | |||
// ┌────────┬────────┬────────┐ | |||
MPRV , MPLY , MNXT , | |||
// ├────────┼────────┼────────┼────────┼ | |||
BRID , VOLD , VOLU , BRIU , | |||
// ├────────┼────────┼────────┼────────┼ | |||
_______, _______, _______ | |||
// └────────┴────────┴────────┘ | |||
), | |||
[ogre] = LAYOUT_kc( | |||
// ┌────────┬────────┬────────┐ | |||
RGB_MOD, RGB_TOG, RGB_RMOD | |||
// ├────────┼────────┼────────┼────────┼ | |||
F13 , F14 , F15 , F16 , | |||
// ├────────┼────────┼────────┼────────┼ | |||
_______, _______, _______ | |||
// └────────┴────────┴────────┘ | |||
), | |||
[tcp] = LAYOUT_kc( | |||
// ┌────────┬────────┬────────┐ | |||
WBAK , WREF , WFWD , | |||
// ├────────┼────────┼────────┼────────┼ | |||
XXXXXXX , PGDN , PGUP , XXXXXXX , | |||
// ├────────┼────────┼────────┼────────┼ | |||
_______, _______, _______ | |||
// └────────┴────────┴────────┘ | |||
), | |||
``` |
@ -1,80 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define KC_MO1 MO(1) | |||
#define KC_MO2 MO(2) | |||
#define KC_MO3 MO(3) | |||
#define KC_LM4 LM(4, MOD_LSFT) | |||
#define KC_MTCM MT(MOD_LCTL, KC_MINS) | |||
#define KC_MTSG MT(MOD_LSFT, KC_GRV) | |||
#define KC_MTSW MT(MOD_RSFT, KC_RGUI) | |||
#define KC_MTSC MT(MOD_RSFT, KC_CAPS) | |||
#define KC_MTCT MT(MOD_LCTL, KC_TAB) | |||
#define KC_BLTG BL_TOGG | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[0] = LAYOUT_kc( | |||
ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC, | |||
MTCT, A, R, S, T, D, H, N, E, I, O, ENT, | |||
LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, MTSC, | |||
MTSG, LGUI, LM4, MO2, MO1, SPC, MTSW, RALT, MO3, MTCM), | |||
[1] = LAYOUT_kc( | |||
TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), | |||
[2] = LAYOUT_kc( | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, | |||
TRNS, BLTG, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS), | |||
[3] = LAYOUT_kc( | |||
TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), | |||
[4] = LAYOUT_kc( | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, | |||
TRNS, BLTG, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS), | |||
}; | |||
enum macro_id | |||
{ | |||
PSWD1, | |||
PSWD2, | |||
PSWD3, | |||
}; | |||
const uint16_t PROGMEM fn_actions[] = { | |||
[10] = ACTION_MACRO(PSWD1), | |||
[11] = ACTION_MACRO(PSWD2), | |||
[12] = ACTION_MACRO(PSWD3) | |||
}; | |||
/* | |||
* Macro definition | |||
*/ | |||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
{ | |||
switch (id) | |||
{ | |||
case PSWD1: | |||
return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE); | |||
case PSWD2: | |||
return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE); | |||
case PSWD3: | |||
return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE); | |||
//case VOLUP: | |||
// return (record->event.pressed ? | |||
// MACRO( D(VOLU), U(VOLU), END ) : | |||
// MACRO_NONE ); | |||
//case ALT_TAB: | |||
// return (record->event.pressed ? | |||
// MACRO( D(LALT), D(TAB), END ) : | |||
// MACRO( U(TAB), END )); | |||
} | |||
return MACRO_NONE; | |||
} |
@ -1,79 +0,0 @@ | |||
/* | |||
Copyright 2012 Jun Wako <wakojun@gmail.com> | |||
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_common.h" | |||
/* USB Device descriptor parameter */ | |||
#define VENDOR_ID 0xFEED | |||
#define PRODUCT_ID 0x6060 | |||
#define DEVICE_VER 0x0001 | |||
#define MANUFACTURER geekhack | |||
#define PRODUCT JD45 | |||
/* key matrix size */ | |||
#define MATRIX_ROWS 4 | |||
#define MATRIX_COLS 13 | |||
/* Planck PCB default pin-out */ | |||
#define MATRIX_ROW_PINS { F0, F1, F5, B4 } | |||
#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2, B0 } | |||
#define UNUSED_PINS | |||
#define BACKLIGHT_PIN B7 | |||
#define USB_MAX_POWER_CONSUMPTION 50 | |||
#define BACKLIGHT_BREATHING | |||
/* COL2ROW or ROW2COL */ | |||
#define DIODE_DIRECTION COL2ROW | |||
/* define if matrix has ghost */ | |||
//#define MATRIX_HAS_GHOST | |||
/* number of backlight levels */ | |||
#define BACKLIGHT_LEVELS 3 | |||
/* Set 0 if debouncing isn't needed */ | |||
#define DEBOUNCE 5 | |||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | |||
#define LOCKING_SUPPORT_ENABLE | |||
/* Locking resynchronize hack */ | |||
#define LOCKING_RESYNC_ENABLE | |||
/* | |||
* Feature disable options | |||
* These options are also useful to firmware size reduction. | |||
*/ | |||
/* disable debug print */ | |||
//#define NO_DEBUG | |||
/* disable print */ | |||
//#define NO_PRINT | |||
/* disable action features */ | |||
//#define NO_ACTION_LAYER | |||
//#define NO_ACTION_TAPPING | |||
//#define NO_ACTION_ONESHOT | |||
//#define NO_ACTION_MACRO | |||
//#define NO_ACTION_FUNCTION | |||
#endif |
@ -1,82 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
/* Mike's Layout for JD45 with backlight LEDs acting as layer indicator | |||
*/ | |||
#define KC_TT2 TT(2) | |||
#define KC_BLST BL_STEP | |||
#define KC_BLTG BL_TOGG | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[0] = LAYOUT_kc( | |||
TAB, Q, W, E, R, T, Y, U, I, O, P, MINS, BSLS, | |||
FN1, A, S, D, F, G, H, J, K, L, QUOT, ENT, | |||
FN0, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, | |||
NO, LCTL, LALT, LGUI, SPC, BSPC, APP, TT2, ESC, NO), | |||
[1] = LAYOUT_kc( | |||
GRV, TRNS, UP, TRNS, 7, 8, 9, 0, MINS, EQL, PSCR, LBRC, RBRC, | |||
TRNS, LEFT, DOWN, RGHT, 4, 5, 6, INS, HOME, PGUP, SCLN, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, 1, 2, 3, DEL, END, PGDN, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, SPC, TRNS, DEL, TRNS, BLST, TRNS, TRNS), | |||
[2] = LAYOUT_kc( | |||
TRNS, TRNS, VOLU, TRNS, F7, F8, F9, F10, F11, F12, PSCR, BLST, BLTG, | |||
TRNS, MPRV, VOLD, MNXT, F4, F5, F6, J, K, L, SCLN, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, F1, F2, F3, MUTE, MPRV, MNXT, MSTP, TRNS, | |||
TRNS, TRNS, TRNS, LGUI, TRNS, TRNS, TRNS, TRNS, PAUS, TRNS) | |||
/* , | |||
[3] = LAYOUT_kc( | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, BTLD, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, | |||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS )*/ | |||
}; | |||
enum macro_id | |||
{ | |||
M_LAYER1, | |||
M_LAYER2 | |||
}; | |||
const uint16_t PROGMEM fn_actions[] = { | |||
[0] = ACTION_MODS_TAP_TOGGLE(MOD_LSFT), | |||
[1] = ACTION_MACRO(M_LAYER1) | |||
}; | |||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
{ | |||
// MACRODOWN only works in this function | |||
switch (id) | |||
{ | |||
case M_LAYER1: | |||
// need to add a timer for doubletap: https://github.com/jackhumbert/qmk_firmware/wiki#timer-functionality | |||
// action_function_tap may also handle this... | |||
if (record->event.pressed) | |||
{ | |||
breathing_period_set(3); | |||
breathing_enable(); | |||
layer_on(1); | |||
} | |||
else | |||
{ | |||
breathing_period_set(1); | |||
breathing_self_disable(); | |||
layer_off(1); | |||
} | |||
break; | |||
case M_LAYER2: | |||
if (record->event.pressed) | |||
{ | |||
breathing_period_set(2); | |||
breathing_pulse(); | |||
layer_on(2); | |||
} | |||
else | |||
{ | |||
breathing_period_set(1); | |||
breathing_self_disable(); | |||
layer_off(2); | |||
} | |||
break; | |||
} | |||
return MACRO_NONE; | |||
}; |
@ -1,12 +0,0 @@ | |||
# Mike's JD45 standard layout | |||
- Backlight that matches active layer | |||
- Works with iPhone Camera Adapter | |||
## Layers | |||
Base for letters and mods. | |||
Function 1 layer adds a centered numpad to the board | |||
Function 2 layer replaces the numpad numbers with Fkeys. |
@ -1,17 +0,0 @@ | |||
# Build Options | |||
# change to "no" to disable the options, or define them in the Makefile in | |||
# the appropriate keymap folder that will get included automatically | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||
CONSOLE_ENABLE = no # Console for debug(+400) | |||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
AUDIO_ENABLE = no # Audio output on port C6 | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
@ -1,49 +0,0 @@ | |||
/* | |||
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/>. | |||
*/ | |||
#pragma once | |||
// place overrides here | |||
#define TAPPING_TERM 200 | |||
#ifdef MOUSEKEY_ENABLE | |||
#undef MOUSEKEY_INTERVAL | |||
#define MOUSEKEY_INTERVAL 5 | |||
#undef MOUSEKEY_TIME_TO_MAX | |||
#define MOUSEKEY_TIME_TO_MAX 150 | |||
#undef MOUSEKEY_MAX_SPEED | |||
#define MOUSEKEY_MAX_SPEED 3 | |||
#undef MOUSEKEY_MOVE_DELTA | |||
#define MOUSEKEY_MOVE_DELTA 3 | |||
#undef MOUSEKEY_DELAY | |||
#define MOUSEKEY_DELAY 0 | |||
#endif | |||
#undef BACKLIGHT_LEVELS | |||
#define BACKLIGHT_LEVELS 15 | |||
// #undef BACKLIGHT_LEVELS | |||
// #define BACKLIGHT_BREATHING | |||
// #undef BREATHING_PERIOD | |||
// #define BREATHING_PERIOD 4 |
@ -1,200 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
#define _QWERTY 0 | |||
#define _LOWER 3 | |||
#define _RAISE 4 | |||
#define _ADJUST 16 | |||
enum custom_keycodes { | |||
LOWER = SAFE_RANGE, | |||
RAISE, | |||
ADJUST, | |||
RGBRST | |||
}; | |||
#define KC______ KC_TRNS | |||
#define KC_XXXXX KC_NO | |||
#define KC_KANJI KC_GRV | |||
#define KC_LOWER LOWER | |||
#define KC_RAISE RAISE | |||
#define KC_ADJST ADJUST | |||
#define KC_RST RESET | |||
#define KC_LRST RGBRST | |||
#define KC_LTOG RGB_TOG | |||
#define KC_LHUI RGB_HUI | |||
#define KC_LHUD RGB_HUD | |||
#define KC_LSAI RGB_SAI | |||
#define KC_LSAD RGB_SAD | |||
#define KC_LVAI RGB_VAI | |||
#define KC_LVAD RGB_VAD | |||
#define KC_LMOD RGB_MOD | |||
#define KC_BTOG BL_TOGG | |||
#define KC_BINC BL_INC | |||
#define KC_BDEC BL_DEC | |||
// #define KC_BRTG BL_BRTG | |||
#define KC_KNRM AG_NORM | |||
#define KC_KSWP AG_SWAP | |||
// Layer Mode aliases | |||
// #define KC_L_LO MO(_LOWER) | |||
// #define KC_L_RA MO(_RAISE) | |||
// #define KC_L_AD MO(_ADJUST) | |||
#define KC_TBSF LSFT_T(KC_TAB) | |||
// #define KC_SPSF LSFT_T(KC_SPC) | |||
// #define KC_GUAP LALT_T(KC_APP) | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_QWERTY] = KC_LAYOUT_ortho_4x12( \ | |||
//,-----------------------------------------------------------------------------------. | |||
ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
TBSF, A, S, D, F, G, H, J, K, L, SCLN, ENT,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
LSFT, Z, X, C, V, B, N, M, COMM, DOT, UP, RSFT,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
LCTRL, LALT, LGUI, ADJST, LOWER, BSPC, SPC, RAISE, APP, LEFT, DOWN, RGHT \ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
), | |||
[_LOWER] = KC_LAYOUT_ortho_4x12( \ | |||
//,-----------------------------------------------------------------------------------. | |||
TAB, F1, F2, F3, F4, F5, XXXXX, MINS, EQL, JYEN, LBRC, RBRC,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
_____, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, SCLN, QUOT, BSLS,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
_____, F11, F12, XXXXX, KANJI, ENT, XXXXX, XXXXX, COMM, DOT, SLSH, RO,\ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
_____, _____, _____, _____, _____, DEL, _____, _____, _____, _____, _____, _____ \ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
), | |||
[_RAISE] = KC_LAYOUT_ortho_4x12( \ | |||
//,-----------------------------------------------------------------------------------. | |||
_____, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
_____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 4, 5, 6, QUOT, PLUS,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
_____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 0, 1, 2, 3, DOT, SLSH,\ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
_____, _____, _____, _____, _____, BSPC, _____, _____, _____, _____, _____, _____ \ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
), | |||
[_ADJUST] = KC_LAYOUT_ortho_4x12( \ | |||
//,-----------------------------------------------------------------------------------. | |||
XXXXX, RST, LRST, KNRM, KSWP, XXXXX, XXXXX, WH_L, WH_U, HOME, PGUP, XXXXX,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
XXXXX, LTOG, LHUI, LSAI, LVAI, BTOG, BINC, WH_R, WH_D, END, PGDN, XXXXX,\ | |||
//|------+------+------+------+------+------|------+------+------+------+------+------| | |||
XXXXX, LMOD, LHUD, LSAD, LVAD, XXXXX, BDEC, XXXXX, BTN1, BTN2, MS_U, XXXXX,\ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
_____, _____, _____, _____, _____, XXXXX, XXXXX, _____, _____, MS_L, MS_D, MS_R \ | |||
//|------+------+------+------+------+-------------+------+------+------+------+------| | |||
) | |||
}; | |||
#ifdef BACKLIGHT_ENABLE | |||
extern backlight_config_t backlight_config; | |||
inline void enable_backright(bool on) { | |||
backlight_config.enable = on; | |||
if (backlight_config.raw == 1) // enabled but level = 0 | |||
backlight_config.level = 1; | |||
eeconfig_update_backlight(backlight_config.raw); | |||
// dprintf("backlight toggle: %u\n", backlight_config.enable); | |||
backlight_set(backlight_config.enable ? backlight_config.level : 0); | |||
} | |||
uint8_t bl_breath_count; | |||
uint8_t bl_breath_speed = 10; | |||
int8_t bl_breath_updown = 1; | |||
bool bl_breath_on; | |||
backlight_config_t bl_breath_backup; | |||
void bl_breath_start(uint8_t speed) { | |||
bl_breath_on = true; | |||
bl_breath_speed = speed; | |||
bl_breath_backup = backlight_config; | |||
} | |||
void bl_breath_end(void) { | |||
bl_breath_on = false; | |||
backlight_config = bl_breath_backup; | |||
eeconfig_update_backlight(backlight_config.raw); | |||
backlight_set(backlight_config.enable ? backlight_config.level : 0); | |||
} | |||
void bl_breath_update(void) { | |||
if (bl_breath_on) { | |||
++bl_breath_count; | |||
if (bl_breath_count > bl_breath_speed) { | |||
bl_breath_count = 0; | |||
backlight_config.level += bl_breath_updown; | |||
bl_breath_updown = (backlight_config.level > BACKLIGHT_LEVELS) ? -1 : | |||
(backlight_config.level <= 0) ? 1 : | |||
bl_breath_updown; | |||
enable_backright(true); | |||
} | |||
} | |||
} | |||
#define BL_BREATH_START bl_breath_start | |||
#define BL_BREATH_END bl_breath_end | |||
#define BL_BREATH_UPDATE bl_breath_update | |||
#else | |||
#define BL_BREATH_START(a) | |||
#define BL_BREATH_END() | |||
#define BL_BREATH_UPDATE() | |||
#endif | |||
// Loop | |||
void matrix_scan_user(void) { | |||
BL_BREATH_UPDATE(); | |||
} | |||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
switch (keycode) { | |||
case LOWER: | |||
if (record->event.pressed) { | |||
BL_BREATH_START(50); | |||
layer_on(_LOWER); | |||
} else { | |||
BL_BREATH_END(); | |||
layer_off(_LOWER); | |||
} | |||
break; | |||
case RAISE: | |||
if (record->event.pressed) { | |||
BL_BREATH_START(100); | |||
layer_on(_RAISE); | |||
} else { | |||
BL_BREATH_END(); | |||
layer_off(_RAISE); | |||
} | |||
break; | |||
case ADJUST: | |||
if (record->event.pressed) { | |||
layer_on(_ADJUST); | |||
} else { | |||
layer_off(_ADJUST); | |||
} | |||
break; | |||
default: | |||
return true; | |||
} | |||
return false; | |||
} |
@ -1,5 +0,0 @@ | |||
MOUSEKEY_ENABLE = yes | |||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
@ -1,6 +0,0 @@ | |||
#ifndef CONFIG_USER_H | |||
#define CONFIG_USER_H | |||
#include "../../config.h" | |||
#endif |
@ -1,3 +0,0 @@ | |||
#pragma once | |||
#define TAPPING_TERM 150 |
@ -1,106 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
extern keymap_config_t keymap_config; | |||
#define _BASE 0 | |||
#define _FN1 1 | |||
#define _FN2 2 | |||
#define _FN3 3 | |||
#define _FN4 4 | |||
#define _FN5 5 | |||
#define KC_ KC_TRNS | |||
// Tap-Hold keys | |||
#define KC_ASFT MT(MOD_LSFT, KC_A) | |||
#define KC_F_L3 LT(_FN3, KC_F) | |||
#define KC_ZCTL MT(MOD_LCTL, KC_Z) | |||
#define KC_XALT MT(MOD_LALT, KC_X) | |||
#define KC_CGUI MT(MOD_LGUI, KC_C) | |||
#define KC_V_L4 LT(_FN4, KC_V) | |||
#define KC_SPL2 LT(_FN2, KC_SPC) | |||
#define KC_B_L1 LT(_FN1, KC_B) | |||
#define KC_N_L5 LT(_FN5, KC_N) | |||
#define KC_MALT MT(MOD_RALT, KC_M) | |||
#define KC_BSCT MT(MOD_RCTL, KC_BSPC) | |||
#define KC_ENTS MT(MOD_RSFT, KC_ENT) | |||
#define KC_ESCS MT(MOD_RSFT, KC_ESC) | |||
#define KC_SCNS MT(MOD_RSFT, KC_SCLN) | |||
#define KC_GUIC LGUI(KC_C) | |||
#define KC_RST RESET | |||
#define KC_BL_S BL_STEP | |||
#define KC_DBUG DEBUG | |||
#define KC_RTOG RGB_TOG | |||
#define KC_RMOD RGB_MOD | |||
#define KC_RHUI RGB_HUI | |||
#define KC_RHUD RGB_HUD | |||
#define KC_RSAI RGB_SAI | |||
#define KC_RSAD RGB_SAD | |||
#define KC_RVAI RGB_VAI | |||
#define KC_RVAD RGB_VAD | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_BASE] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
Q , W , E , R , T , Y , U , I , O , P , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
ASFT, S , D ,F_L3, G , H , J , K , L ,ESCS, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
ZCTL,XALT,CGUI,V_L4,SPL2,B_L1,N_L5,MALT,BSCT,ENTS | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN1] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, , , ,BSPC, , , , , | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN2] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
F11 ,F12 , , , ,LEFT,DOWN, UP ,RGHT,GRV , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, , , , ,DEL , , , , | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN3] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
, , , , ,MINS,EQL ,LBRC,RBRC,BSLS, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, , , ,BSPC, ,LEFT,DOWN, UP ,RGHT | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN4] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
, , , , ,UNDS,PLUS,LCBR,RCBR,PIPE, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
TAB , , , , , LT , GT ,QUES,COLN,DQUO, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN5] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, ,DBUG, ,RHUD,RSAD,RVAD, , , , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
BL_S, ,GUIC, , , , , , , | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
) | |||
}; |
@ -1 +0,0 @@ | |||
RGBLIGHT_ENABLE = yes |
@ -1,10 +0,0 @@ | |||
#ifndef CONFIG_USER_H | |||
#define CONFIG_USER_H | |||
#include "../../config.h" | |||
#define TAPPING_TERM 200 | |||
#define RETRO_TAPPING | |||
#define PERMISSIVE_HOLD | |||
#endif |
@ -1,105 +0,0 @@ | |||
#include QMK_KEYBOARD_H | |||
extern keymap_config_t keymap_config; | |||
#define _BASE 0 | |||
#define _FN1 1 | |||
#define _FN2 2 | |||
#define _FN3 3 | |||
#define _FN4 4 | |||
#define _FN5 5 | |||
#define KC_ KC_TRNS | |||
// Tap-Hold keys | |||
//#define KC_ASFT MT(MOD_LSFT, KC_A) | |||
#define KC_F_L3 LT(_FN3, KC_F) | |||
#define KC_ZCTL MT(MOD_LCTL, KC_Z) | |||
#define KC_XALT MT(MOD_LALT, KC_X) | |||
//#define KC_CGUI MT(MOD_LGUI, KC_C) | |||
#define KC_V_L4 LT(_FN4, KC_V) | |||
#define KC_SPL2 LT(_FN2, KC_SPC) | |||
#define KC_B_L1 LT(_FN1, KC_B) | |||
#define KC_N_L5 LT(_FN5, KC_N) | |||
//#define KC_MALT MT(MOD_RALT, KC_M) | |||
//#define KC_BSCT MT(MOD_RCTL, KC_BSPC) | |||
#define KC_ENTS MT(MOD_RSFT, KC_ENT) | |||
#define KC_BSCS MT(MOD_RSFT, KC_BSPC) | |||
#define KC_GUIC LGUI(KC_C) | |||
#define KC_RST RESET | |||
#define KC_BL_S BL_STEP | |||
#define KC_DBUG DEBUG | |||
#define KC_RTOG RGB_TOG | |||
#define KC_RMOD RGB_MOD | |||
#define KC_RHUI RGB_HUI | |||
#define KC_RHUD RGB_HUD | |||
#define KC_RSAI RGB_SAI | |||
#define KC_RSAD RGB_SAD | |||
#define KC_RVAI RGB_VAI | |||
#define KC_RVAD RGB_VAD | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
[_BASE] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
Q , W , E , R , T , Y , U , I , O , P , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
A , S , D ,F_L3, G , H , J , K , L ,BSCS, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
ZCTL,XALT,C ,V_L4,B_L1,SPL2,N_L5,M ,DOT ,ENTS | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN1] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, , , , ,BSPC, , , ,CAPS | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN2] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
F11 ,F12 , , , , , , , ,GRV , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, , , ,DEL , , , , , | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN3] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
ESC , , , , ,MINS,EQL ,LBRC,RBRC,BSLS, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, , , ,BSPC, ,LEFT,DOWN, UP ,RGHT | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN4] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
, , , , ,UNDS,PLUS,LCBR,RCBR,PIPE, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
TAB , , , , , LT , GT ,QUES,COLN,DQUO, | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
), | |||
[_FN5] = LAYOUT_kc( | |||
//,----+----+----+----+----+----+----+----+----+----. | |||
RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
, ,DBUG, ,RHUD,RSAD,RVAD, , , , | |||
//|----+----+----+----+----+----+----+----+----+----| | |||
BL_S, ,GUIC, , , , , , , | |||
//`----+----+----+----+----+----+----+----+----+----' | |||
) | |||
}; |
@ -1 +0,0 @@ | |||
RGBLIGHT_ENABLE = yes |
@ -1,11 +0,0 @@ | |||
#ifndef CONFIG_USER_H | |||
#define CONFIG_USER_H | |||
#include "../../config.h" | |||
#define AUTO_SHIFT_TIMEOUT 150 | |||
#define NO_AUTO_SHIFT_SPECIAL | |||
#define NO_AUTO_SHIFT_NUMERIC | |||
#define USB_MAX_POWER_CONSUMPTION 50 | |||
#endif |