1
0
Fork 0

Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into jackhumbert-master

This commit is contained in:
Lucas Hecht 2016-02-25 21:40:16 +01:00
commit 34a7012a33
7 changed files with 178 additions and 25 deletions

5
.gitignore vendored
View file

@ -14,3 +14,8 @@ build/
*.bak
.vagrant/
.DS_STORE
# Eclipse Settings
.cproject
.project
.settings/

View file

@ -55,7 +55,7 @@ As on the original TM 2030, when `num` layer is activated, holding `fn` disables
## Dvorak Layer
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.

View file

@ -11,9 +11,6 @@
#define MDBL0 1
#define MFNLR 2
#define MCUT 3
#define MCOPY 4
#define MPSTE 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Basic layer
@ -142,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS, KC_TRNS,KC_TRNS,
// 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_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,
@ -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_VOLU,
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,
@ -210,22 +207,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
break;
case MFNLR:
layer_state ^= (1 << NUMR) | (1 << FNLR);
break;
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);
}
layer_invert(NUMR);
layer_invert(FNLR);
break;
}
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.
void * matrix_init_user(void) {
return NULL;
};
// 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)) {
ergodox_right_led_3_on();
}
return NULL;
};

View file

@ -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;
};

View file

@ -68,5 +68,7 @@
#define DV_RPRN LSFT(DV_0)
#define DV_LCBR LSFT(DV_LBRC)
#define DV_RCBR LSFT(DV_RBRC)
#define DV_UNDS LSFT(DV_MINS)
#define DV_PLUS LSFT(DV_EQL)
#endif

View file

@ -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