Remove KEYMAP and LAYOUT_kc (#12160)
* alias KEYMAP to LAYOUT * remove KEYMAP and LAYOUT_kcpython_optimizations
parent
d84cbc3cec
commit
38d8d5445e
@ -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 |
||||
====================================================== |
||||
|
||||
|
||||
 |
||||
|
||||
- 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 @@ |
||||
 |
||||
|
||||
# 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 |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue