Merge branch 'jackhumbert-master'
commit
cae9993a25
|
@ -14,3 +14,8 @@ build/
|
||||||
*.bak
|
*.bak
|
||||||
.vagrant/
|
.vagrant/
|
||||||
.DS_STORE
|
.DS_STORE
|
||||||
|
|
||||||
|
# Eclipse Settings
|
||||||
|
.cproject
|
||||||
|
.project
|
||||||
|
.settings/
|
|
@ -55,7 +55,7 @@ As on the original TM 2030, when `num` layer is activated, holding `fn` disables
|
||||||
## Dvorak Layer
|
## Dvorak Layer
|
||||||
Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout.
|
Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout.
|
||||||
|
|
||||||
Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`.
|
Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`.
|
||||||
|
|
||||||
The middle (green) led indicates when the Dvorak layer is activated.
|
The middle (green) led indicates when the Dvorak layer is activated.
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,6 @@
|
||||||
|
|
||||||
#define MDBL0 1
|
#define MDBL0 1
|
||||||
#define MFNLR 2
|
#define MFNLR 2
|
||||||
#define MCUT 3
|
|
||||||
#define MCOPY 4
|
|
||||||
#define MPSTE 5
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Basic layer
|
/* Basic layer
|
||||||
|
@ -142,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_TRNS,
|
KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS,KC_TRNS,
|
KC_TRNS, KC_TRNS,KC_TRNS,
|
||||||
// right hand
|
// right hand
|
||||||
KC_INS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS,
|
KC_TRNS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
|
KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||||
|
@ -178,7 +175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM,
|
||||||
KC_TRNS, KC_TRNS, M(MCUT), M(MCOPY), M(MPSTE), KC_MUTE, KC_VOLD,
|
KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
|
||||||
KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS,
|
||||||
|
@ -210,22 +207,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MFNLR:
|
case MFNLR:
|
||||||
layer_state ^= (1 << NUMR) | (1 << FNLR);
|
layer_invert(NUMR);
|
||||||
break;
|
layer_invert(FNLR);
|
||||||
case MCUT:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
return MACRO(D(LSFT), T(DELT), U(LSFT), END);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MCOPY:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
return MACRO(D(LCTL), T(INS), U(LCTL), END);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MPSTE:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
return MACRO(D(LSFT), T(INS), U(LSFT), END);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return MACRO_NONE;
|
return MACRO_NONE;
|
||||||
|
@ -233,7 +216,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
|
|
||||||
// Runs just one time when the keyboard initializes.
|
// Runs just one time when the keyboard initializes.
|
||||||
void * matrix_init_user(void) {
|
void * matrix_init_user(void) {
|
||||||
|
return NULL;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Runs constantly in the background, in a loop.
|
// Runs constantly in the background, in a loop.
|
||||||
|
@ -255,4 +238,5 @@ void * matrix_scan_user(void) {
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
|
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
|
||||||
ergodox_right_led_3_on();
|
ergodox_right_led_3_on();
|
||||||
}
|
}
|
||||||
|
return NULL;
|
||||||
};
|
};
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
*/
|
*/
|
||||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS},
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS},
|
||||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT},
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT},
|
||||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(5), DE_MORE, DE_QST, KC_TRNS},
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS},
|
||||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
|
||||||
},
|
},
|
||||||
[2] = { /* Raise
|
[2] = { /* Raise
|
||||||
|
@ -150,34 +150,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1: // M(1)
|
case 1: // M(1)
|
||||||
if (record->event.pressed) {
|
|
||||||
register_code(LSFT(DE_SCLN));
|
|
||||||
} else {
|
|
||||||
unregister_code(LSFT(DE_SCLN));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2: // M(2)
|
|
||||||
if (record->event.pressed) {
|
|
||||||
register_code(DE_MINS);
|
|
||||||
} else {
|
|
||||||
unregister_code(DE_MINS);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3: // M(3)
|
|
||||||
if (record->event.pressed) {
|
|
||||||
register_code(DE_COMM);
|
|
||||||
} else {
|
|
||||||
unregister_code(DE_COMM);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4: // M(4)
|
|
||||||
if (record->event.pressed) {
|
|
||||||
register_code(DE_DOT);
|
|
||||||
} else {
|
|
||||||
unregister_code(DE_DOT);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 5: // M(5)
|
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
unregister_code(KC_LSFT);
|
unregister_code(KC_LSFT);
|
||||||
register_code(DE_MORE);
|
register_code(DE_MORE);
|
||||||
|
@ -185,13 +157,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
unregister_code(DE_MORE);
|
unregister_code(DE_MORE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 6: // M(6)
|
|
||||||
if (record->event.pressed) {
|
|
||||||
register_code(DE_LESS);
|
|
||||||
} else {
|
|
||||||
unregister_code(DE_LESS);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return MACRO_NONE;
|
return MACRO_NONE;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
#include "planck.h"
|
||||||
|
#ifdef BACKLIGHT_ENABLE
|
||||||
|
#include "backlight.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// This simple keymap is optimized for xmonad users using super as their modifier key.
|
||||||
|
// M(1) makes it possible to change virtual screens and swap windows between them.
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
#define _QW 0
|
||||||
|
#define _LW 1
|
||||||
|
#define _RS 2
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QW] = { /* Qwerty */
|
||||||
|
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||||
|
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||||
|
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||||
|
{KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||||
|
},
|
||||||
|
[_RS] = { /* RAISE */
|
||||||
|
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL },
|
||||||
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||||
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
|
||||||
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
|
||||||
|
},
|
||||||
|
[_LW] = { /* LOWER */
|
||||||
|
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||||
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
|
||||||
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS},
|
||||||
|
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
|
{
|
||||||
|
// MACRODOWN only works in this function
|
||||||
|
switch(id) {
|
||||||
|
case 0:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_code(KC_RSFT);
|
||||||
|
#ifdef BACKLIGHT_ENABLE
|
||||||
|
backlight_step();
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_RSFT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
register_code(KC_LGUI);
|
||||||
|
layer_on(_RS);
|
||||||
|
} else {
|
||||||
|
unregister_code(KC_LGUI);
|
||||||
|
layer_off(_RS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return MACRO_NONE;
|
||||||
|
};
|
|
@ -68,5 +68,7 @@
|
||||||
#define DV_RPRN LSFT(DV_0)
|
#define DV_RPRN LSFT(DV_0)
|
||||||
#define DV_LCBR LSFT(DV_LBRC)
|
#define DV_LCBR LSFT(DV_LBRC)
|
||||||
#define DV_RCBR LSFT(DV_RBRC)
|
#define DV_RCBR LSFT(DV_RBRC)
|
||||||
|
#define DV_UNDS LSFT(DV_MINS)
|
||||||
|
#define DV_PLUS LSFT(DV_EQL)
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -0,0 +1,98 @@
|
||||||
|
#ifndef KEYMAP_FR_CH
|
||||||
|
#define KEYMAP_FR_CH
|
||||||
|
|
||||||
|
#include "keymap_common.h"
|
||||||
|
|
||||||
|
// Alt gr
|
||||||
|
#define ALGR(kc) kc | 0x1400
|
||||||
|
#define FR_CH_ALGR KC_RALT
|
||||||
|
|
||||||
|
// normal characters
|
||||||
|
#define FR_CH_Z KC_Y
|
||||||
|
#define FR_CH_Y KC_Z
|
||||||
|
|
||||||
|
#define FR_CH_A KC_A
|
||||||
|
#define FR_CH_B KC_B
|
||||||
|
#define FR_CH_C KC_C
|
||||||
|
#define FR_CH_D KC_D
|
||||||
|
#define FR_CH_E KC_E
|
||||||
|
#define FR_CH_F KC_F
|
||||||
|
#define FR_CH_G KC_G
|
||||||
|
#define FR_CH_H KC_H
|
||||||
|
#define FR_CH_I KC_I
|
||||||
|
#define FR_CH_J KC_J
|
||||||
|
#define FR_CH_K KC_K
|
||||||
|
#define FR_CH_L KC_L
|
||||||
|
#define FR_CH_M KC_M
|
||||||
|
#define FR_CH_N KC_N
|
||||||
|
#define FR_CH_O KC_O
|
||||||
|
#define FR_CH_P KC_P
|
||||||
|
#define FR_CH_Q KC_Q
|
||||||
|
#define FR_CH_R KC_R
|
||||||
|
#define FR_CH_S KC_S
|
||||||
|
#define FR_CH_T KC_T
|
||||||
|
#define FR_CH_U KC_U
|
||||||
|
#define FR_CH_V KC_V
|
||||||
|
#define FR_CH_W KC_W
|
||||||
|
#define FR_CH_X KC_X
|
||||||
|
|
||||||
|
#define FR_CH_0 KC_0
|
||||||
|
#define FR_CH_1 KC_1
|
||||||
|
#define FR_CH_2 KC_2
|
||||||
|
#define FR_CH_3 KC_3
|
||||||
|
#define FR_CH_4 KC_4
|
||||||
|
#define FR_CH_5 KC_5
|
||||||
|
#define FR_CH_6 KC_6
|
||||||
|
#define FR_CH_7 KC_7
|
||||||
|
#define FR_CH_8 KC_8
|
||||||
|
#define FR_CH_9 KC_9
|
||||||
|
|
||||||
|
#define FR_CH_DOT KC_DOT
|
||||||
|
#define FR_CH_COMM KC_COMM
|
||||||
|
|
||||||
|
#define FR_CH_QUOT KC_MINS
|
||||||
|
#define FR_CH_AE KC_QUOT
|
||||||
|
#define FR_CH_UE KC_LBRC
|
||||||
|
#define FR_CH_OE KC_SCLN
|
||||||
|
|
||||||
|
#define FR_CH_CIRC KC_EQL // accent circumflex ^ and grave ` and ~
|
||||||
|
#define FR_CH_LESS KC_NUBS // < and > and backslash
|
||||||
|
#define FR_CH_MINS KC_SLSH // - and _
|
||||||
|
#define FR_CH_DLR KC_BSLS // $, £ and }
|
||||||
|
#define FR_CH_PARA KC_GRV // § and ring °
|
||||||
|
#define FR_CH_DIAE KC_RBRC // accent ¨
|
||||||
|
|
||||||
|
// shifted characters
|
||||||
|
#define FR_CH_RING LSFT(KC_GRV) // °
|
||||||
|
#define FR_CH_EXLM LSFT(KC_RBRC) // !
|
||||||
|
#define FR_CH_PLUS LSFT(KC_1) // +
|
||||||
|
#define FR_CH_DQOT LSFT(KC_2) // "
|
||||||
|
#define FR_CH_ASTR LSFT(KC_3) // *
|
||||||
|
#define FR_CH_PERC LSFT(KC_5) // %
|
||||||
|
#define FR_CH_AMPR LSFT(KC_6) // &
|
||||||
|
#define FR_CH_SLSH LSFT(KC_7) // /
|
||||||
|
#define FR_CH_LPRN LSFT(KC_8) // (
|
||||||
|
#define FR_CH_RPRN LSFT(KC_9) // )
|
||||||
|
#define FR_CH_EQL LSFT(KC_0) // =
|
||||||
|
#define FR_CH_QST LSFT(FR_CH_QUOT) // ?
|
||||||
|
#define FR_CH_MORE LSFT(FR_CH_LESS) // >
|
||||||
|
#define FR_CH_COLN LSFT(KC_DOT) // :
|
||||||
|
#define FR_CH_SCLN LSFT(KC_COMM) // ;
|
||||||
|
#define FR_CH_UNDS LSFT(FR_CH_MINS) // _
|
||||||
|
#define FR_CH_CCED LSFT(KC_4) // ç
|
||||||
|
#define FR_CH_GRV LSFT(FR_CH_CIRC) // accent grave `
|
||||||
|
|
||||||
|
// Alt Gr-ed characters
|
||||||
|
#define FR_CH_LCBR ALGR(KC_QUOT) // {
|
||||||
|
#define FR_CH_LBRC ALGR(KC_LBRC) // [
|
||||||
|
#define FR_CH_RBRC ALGR(KC_9) // ]
|
||||||
|
#define FR_CH_RCBR ALGR(KC_0) // }
|
||||||
|
#define FR_CH_BSLS ALGR(FR_CH_LESS) // backslash
|
||||||
|
#define FR_CH_AT ALGR(KC_2) // @
|
||||||
|
#define FR_CH_EURO ALGR(KC_E) // €
|
||||||
|
#define FR_CH_TILD ALGR(FR_CH_CIRC) // ~
|
||||||
|
#define FR_CH_PIPE ALGR(KC_1) // |
|
||||||
|
#define FR_CH_HASH ALGR(KC_3) // #
|
||||||
|
#define FR_CH_ACUT ALGR(FR_CH_QUOT) // accent acute ´
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue