Merge remote-tracking branch 'origin/master' into develop
commit
1ac1f92000
|
@ -14,3 +14,17 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "pro.h"
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -15,6 +15,10 @@ enum layer_names {
|
|||
|
||||
typedef enum onoff_t {OFF, ON} onoff;
|
||||
|
||||
#define caps_led_on ergodox_right_led_2_on
|
||||
#define caps_led_off ergodox_right_led_2_off
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
|
@ -123,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
*/
|
||||
// MEDIA AND TENKEY
|
||||
[MDIA] = LAYOUT_ergodox(
|
||||
KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
|
||||
QK_BOOT, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
|
||||
KC_TRNS, 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_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
|
@ -142,6 +146,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
#ifndef NO_FAKE_CAPS
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
static onoff caps_state = OFF;
|
||||
|
||||
switch (keycode) {
|
||||
case KC_CAPS:
|
||||
if (record->event.pressed) {
|
||||
if (caps_state == OFF) {
|
||||
caps_led_on();
|
||||
caps_state = ON;
|
||||
} else {
|
||||
caps_led_off();
|
||||
caps_state = OFF;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (keycode < KC_A || keycode > KC_Z) {
|
||||
// This isn't an alpha or a KC_CAPS, continue on as usual.
|
||||
return true;
|
||||
}
|
||||
if (record->event.pressed) {
|
||||
bool shifted = (caps_state == ON && get_mods() == 0);
|
||||
if (shifted) {
|
||||
register_code(KC_LSFT);
|
||||
}
|
||||
register_code(keycode);
|
||||
if (shifted) {
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
} else {
|
||||
unregister_code(keycode);
|
||||
}
|
||||
break;
|
||||
}
|
||||
// If we get here, we've already handled the keypresses.
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# uncomment below to disable fake capslock
|
||||
# OPT_DEFS += -DNO_FAKE_CAPS
|
Loading…
Reference in New Issue