mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-30 20:56:32 +06:00
Merge branch 'master' into dev
This commit is contained in:
commit
857600aa4b
21
Makefile
21
Makefile
|
@ -21,6 +21,8 @@ override SILENT := false
|
|||
|
||||
ON_ERROR := error_occurred=1
|
||||
|
||||
BREAK_ON_ERRORS = no
|
||||
|
||||
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
||||
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
||||
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
|
||||
|
@ -462,20 +464,25 @@ endef
|
|||
|
||||
include $(ROOT_DIR)/message.mk
|
||||
|
||||
ifeq ($(strip $(BREAK_ON_ERRORS)), yes)
|
||||
HANDLE_ERROR = exit 1
|
||||
else
|
||||
HANDLE_ERROR = echo $$error_occurred > $(ERROR_FILE)
|
||||
endif
|
||||
|
||||
# The empty line is important here, as it will force a new shell to be created for each command
|
||||
# Otherwise the command line will become too long with a lot of keyboards and keymaps
|
||||
define RUN_COMMAND
|
||||
+error_occurred=0;\
|
||||
$(COMMAND_$(SILENT_MODE)_$(COMMAND))\
|
||||
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
|
||||
if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
|
||||
|
||||
|
||||
endef
|
||||
define RUN_TEST
|
||||
+error_occurred=0;\
|
||||
$($(TEST)_COMMAND)\
|
||||
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
|
||||
|
||||
if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
|
||||
endef
|
||||
|
||||
# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
|
||||
|
@ -527,14 +534,22 @@ test: test-all
|
|||
.PHONY: test-clean
|
||||
test-clean: test-all-clean
|
||||
|
||||
ifdef SKIP_VERSION
|
||||
SKIP_GIT := yes
|
||||
endif
|
||||
|
||||
# Generate the version.h file
|
||||
ifndef SKIP_GIT
|
||||
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
|
||||
else
|
||||
GIT_VERSION := NA
|
||||
endif
|
||||
ifndef SKIP_VERSION
|
||||
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
|
||||
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
|
||||
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
|
||||
else
|
||||
BUILD_DATE := NA
|
||||
endif
|
||||
|
||||
include $(ROOT_DIR)/testlist.mk
|
||||
|
|
|
@ -176,22 +176,26 @@ endif
|
|||
|
||||
ifeq ($(strip $(UCIS_ENABLE)), yes)
|
||||
OPT_DEFS += -DUCIS_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||
UNICODE_COMMON = yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
|
||||
OPT_DEFS += -DUNICODEMAP_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||
UNICODE_COMMON = yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODE_ENABLE)), yes)
|
||||
OPT_DEFS += -DUNICODE_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||
UNICODE_COMMON = yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODE_COMMON)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
|
||||
OPT_DEFS += -DRGBLIGHT_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/light_ws2812.c
|
||||
|
|
|
@ -24,6 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "print.h"
|
||||
#include "debug.h"
|
||||
#include "matrix.h"
|
||||
#include "serial_link/system/serial_link.h"
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -311,12 +311,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||
break;
|
||||
case SWITCH_NDS:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LSFT), T(F11), U(LSFT), W(500), D(LALT), T(TAB), U(LALT), END);
|
||||
return MACRO( D(LSFT), T(F11), U(LSFT), W(255), D(LALT), T(TAB), U(LALT), END);
|
||||
}
|
||||
break;
|
||||
case OPEN_CLOSE_PAREN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LSFT), T(LPRN), T(RPRN), U(LSFT), T(LEFT), END);
|
||||
return MACRO( D(LSFT), T(9), T(0), U(LSFT), T(LEFT), END);
|
||||
}
|
||||
break;
|
||||
case OPEN_CLOSE_BRACKET:
|
||||
|
@ -326,7 +326,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||
break;
|
||||
case OPEN_CLOSE_CURLY:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LSFT), T(LCBR), T(RCBR), U(LSFT), T(LEFT), END);
|
||||
return MACRO( D(LSFT), T(LBRC), T(RBRC), U(LSFT), T(LEFT), END);
|
||||
}
|
||||
break;
|
||||
case OPEN_CLOSE_SINGLE_QUOTE:
|
||||
|
|
|
@ -392,7 +392,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||
|
||||
case NotEq:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( I(10), D(LSFT), T(EXLM), U(LSFT), T(EQL), END ); // !=
|
||||
return MACRO( I(10), D(LSFT), T(1), U(LSFT), T(EQL), END ); // !=
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "yoruian.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP\
|
||||
[0] = KEYMAP_YORUIAN\
|
||||
(9, 7, 5, 3, 1, GRV, MINS, EQL, LBRC, 0, 2, 4, 6, 8,
|
||||
ES, RBRC, Y, O, R, BSLS, P3, P3, J, V, D, F, W, Q,
|
||||
LC, U, I, A, N, SCLN, M, H, T, S, C, RC,
|
||||
|
@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
BSPC, RALT, P2, TAB,
|
||||
NO, NO,
|
||||
E, LSFT, NO, NO, ENT, SPC),
|
||||
[1] = KEYMAP\
|
||||
[1] = KEYMAP_YORUIAN\
|
||||
(TR, TR, TR, TR, TR, TR, TR, TR, TR, F5, F6, F7, F8, F9,
|
||||
TR, TR, TR, TR, TR, TR, TR, TR, TR, F1, F2, F3, F4, FT,
|
||||
TR, TR, TR, TR, TR, TR, PAUS, LEFT, DOWN, UP, RGHT, FE,
|
||||
|
|
|
@ -18,9 +18,7 @@
|
|||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
#undef KEYMAP
|
||||
#define KEYMAP\
|
||||
( \
|
||||
#define KEYMAP_YORUIAN( \
|
||||
/* Spacial positions. */ \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
||||
|
@ -30,24 +28,15 @@
|
|||
k55, k56, k57, k58, \
|
||||
k54, k59, \
|
||||
k53, k52, k51, k5C, k5B, k5A) \
|
||||
\
|
||||
/* Matrix positions. */ \
|
||||
{ \
|
||||
{ KC_##k00, KC_##k10, KC_##k20, KC_##k30, KC_##k40, KC_NO }, \
|
||||
{ KC_##k01, KC_##k11, KC_##k21, KC_##k31, KC_##k41, KC_##k51 }, \
|
||||
{ KC_##k02, KC_##k12, KC_##k22, KC_##k32, KC_##k42, KC_##k52 }, \
|
||||
{ KC_##k03, KC_##k13, KC_##k23, KC_##k33, KC_##k43, KC_##k53 }, \
|
||||
{ KC_##k04, KC_##k14, KC_##k24, KC_##k34, KC_##k44, KC_##k54 }, \
|
||||
{ KC_##k05, KC_##k15, KC_##k25, KC_##k35, KC_NO, KC_##k55 }, \
|
||||
{ KC_##k06, KC_##k16, KC_NO, KC_##k36, KC_NO, KC_##k56 }, \
|
||||
{ KC_##k07, KC_##k17, KC_NO, KC_##k37, KC_NO, KC_##k57 }, \
|
||||
{ KC_##k08, KC_##k18, KC_##k28, KC_##k38, KC_NO, KC_##k58 }, \
|
||||
{ KC_##k09, KC_##k19, KC_##k29, KC_##k39, KC_##k49, KC_##k59 }, \
|
||||
{ KC_##k0A, KC_##k1A, KC_##k2A, KC_##k3A, KC_##k4A, KC_##k5A }, \
|
||||
{ KC_##k0B, KC_##k1B, KC_##k2B, KC_##k3B, KC_##k4B, KC_##k5B }, \
|
||||
{ KC_##k0C, KC_##k1C, KC_##k2C, KC_##k3C, KC_##k4C, KC_##k5C }, \
|
||||
{ KC_##k0D, KC_##k1D, KC_##k2D, KC_##k3D, KC_##k4D, KC_NO } \
|
||||
}
|
||||
KEYMAP( \
|
||||
KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0A, KC_##k0B, KC_##k0C, KC_##k0D, \
|
||||
KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1A, KC_##k1B, KC_##k1C, KC_##k1D, \
|
||||
KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k28, KC_##k29, KC_##k2A, KC_##k2B, KC_##k2C, KC_##k2D, \
|
||||
KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3A, KC_##k3B, KC_##k3C, KC_##k3D, \
|
||||
KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D, \
|
||||
KC_##k55, KC_##k56, KC_##k57, KC_##k58, \
|
||||
KC_##k54, KC_##k59, \
|
||||
KC_##k53, KC_##k52, KC_##k51, KC_##k5C, KC_##k5B, KC_##k5A)
|
||||
|
||||
#define KC_ES KC_ESC
|
||||
#define KC_LC KC_LCTL
|
||||
|
|
|
@ -115,6 +115,7 @@ inline matrix_row_t matrix_get_row(uint8_t row) {
|
|||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
#ifndef NO_PRINT
|
||||
print("\nr\\c ABCDEFGHIJKLMNOPQR\n");
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
matrix_row_t matrix_row = matrix_get_row(row);
|
||||
|
@ -125,6 +126,7 @@ void matrix_print(void) {
|
|||
}
|
||||
print("\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t matrix_key_count(void) {
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
#include "MS-sculpt-mobile.h"
|
1
keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c
Normal file
1
keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c
Normal file
|
@ -0,0 +1 @@
|
|||
#include "MS_sculpt_mobile.h"
|
|
@ -7,7 +7,8 @@ Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
|
|||
and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
|
||||
*/
|
||||
|
||||
#include "babblePaste.h"
|
||||
#include "../MS_sculpt_mobile/babblePaste.h"
|
||||
|
||||
#include "action_macro.h"
|
||||
|
||||
#ifdef USE_BABLPASTE
|
|
@ -9,9 +9,9 @@ and jeebak & algernon's keymap
|
|||
*/
|
||||
#ifndef _babblePaste_h_included__
|
||||
#define _babblePaste_h_included__
|
||||
#include "../MS_sculpt_mobile/config.h"
|
||||
#include "action_layer.h"
|
||||
#include "quantum_keycodes.h"
|
||||
#include "config.h"
|
||||
|
||||
#ifdef USE_BABLPASTE
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../../MS_sculpt_mobile/config.h"
|
||||
|
||||
// place overrides here
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#include "MS-sculpt-mobile.h"
|
||||
#include "../../MS_sculpt_mobile.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
#include "../../../MS_sculpt_mobile/config.h"
|
||||
|
||||
#define USE_BABLPASTE
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#include "MS-sculpt-mobile.h"
|
||||
#include "../../../MS_sculpt_mobile/babblePaste.h"
|
||||
#include "../../MS_sculpt_mobile.h"
|
||||
#include "action_layer.h"
|
||||
#include "action_util.h"
|
||||
#include "babblePaste.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
|
@ -22,7 +22,7 @@
|
|||
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 3
|
||||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 1000
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
|
||||
#undef ONESHOT_TIMEOUT
|
||||
#define ONESHOT_TIMEOUT 500
|
||||
#undef TAPPING_TOGGLE
|
||||
|
|
|
@ -153,9 +153,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||
case 1: // M(1)
|
||||
if (record->event.pressed) {
|
||||
unregister_code(KC_LSFT);
|
||||
register_code(DE_MORE);
|
||||
register_code(DE_LESS);
|
||||
} else {
|
||||
unregister_code(DE_MORE);
|
||||
unregister_code(DE_LESS);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -212,10 +212,10 @@ const uint16_t PROGMEM fn_actions[] = {
|
|||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float start_up[][2] = {
|
||||
{440.0*pow(2.0,(14)/12.0), 20},
|
||||
{440.0*pow(2.0,(26)/12.0), 8},
|
||||
{440.0*pow(2.0,(18)/12.0), 20},
|
||||
{440.0*pow(2.0,(26)/12.0), 8}
|
||||
MUSICAL_NOTE(_B5, 20),
|
||||
MUSICAL_NOTE(_B6, 8),
|
||||
MUSICAL_NOTE(_DS6, 20),
|
||||
MUSICAL_NOTE(_B6, 8),
|
||||
};
|
||||
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
|
@ -323,7 +323,7 @@ void matrix_init_user(void) {
|
|||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
void play_goodbye_tone()
|
||||
void play_goodbye_tone(void)
|
||||
{
|
||||
PLAY_NOTE_ARRAY(goodbye, false, 0);
|
||||
_delay_ms(150);
|
||||
|
|
|
@ -179,5 +179,12 @@ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|||
__attribute__ ((weak))
|
||||
uint16_t keymap_function_id_to_action( uint16_t function_id )
|
||||
{
|
||||
// The compiler sees the empty (weak) fn_actions and generates a warning
|
||||
// This function should not be called in that case, so the warning is too strict
|
||||
// If this function is called however, the keymap should have overridden fn_actions, and then the compile
|
||||
// is comparing against the wrong array
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Warray-bounds"
|
||||
return pgm_read_word(&fn_actions[function_id]);
|
||||
#pragma GCC diagnostic pop
|
||||
}
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
#define CH_E KC_E
|
||||
#define CH_F KC_F
|
||||
#define CH_G KC_G
|
||||
#ifdef CH_H
|
||||
// The ChibiOS ch.h file defines this...
|
||||
#undef CH_H
|
||||
#endif
|
||||
#define CH_H KC_H
|
||||
#define CH_I KC_I
|
||||
#define CH_J KC_J
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
bool printing_enabled = false;
|
||||
uint8_t character_shift = 0;
|
||||
|
||||
void enabled_printing() {
|
||||
void enable_printing(void) {
|
||||
printing_enabled = true;
|
||||
serial_init();
|
||||
}
|
||||
|
||||
void disable_printing() {
|
||||
void disable_printing(void) {
|
||||
printing_enabled = false;
|
||||
}
|
||||
|
||||
|
@ -41,9 +41,14 @@ void print_char(char c) {
|
|||
USB_Init();
|
||||
}
|
||||
|
||||
void print_box_string(uint8_t text[]) {
|
||||
uint8_t len = strlen(text);
|
||||
uint8_t out[len * 3 + 8];
|
||||
void print_string(char c[]) {
|
||||
for(uint8_t i = 0; i < strlen(c); i++)
|
||||
print_char(c[i]);
|
||||
}
|
||||
|
||||
void print_box_string(const char text[]) {
|
||||
size_t len = strlen(text);
|
||||
char out[len * 3 + 8];
|
||||
out[0] = 0xDA;
|
||||
for (uint8_t i = 0; i < len; i++) {
|
||||
out[i+1] = 0xC4;
|
||||
|
@ -69,14 +74,9 @@ void print_box_string(uint8_t text[]) {
|
|||
print_string(out);
|
||||
}
|
||||
|
||||
void print_string(char c[]) {
|
||||
for(uint8_t i = 0; i < strlen(c); i++)
|
||||
print_char(c[i]);
|
||||
}
|
||||
|
||||
bool process_printer(uint16_t keycode, keyrecord_t *record) {
|
||||
if (keycode == PRINT_ON) {
|
||||
enabled_printing();
|
||||
enable_printing();
|
||||
return false;
|
||||
}
|
||||
if (keycode == PRINT_OFF) {
|
||||
|
|
|
@ -21,4 +21,6 @@
|
|||
|
||||
#include "protocol/serial.h"
|
||||
|
||||
bool process_printer(uint16_t keycode, keyrecord_t *record);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -46,7 +46,7 @@ void serial_output(void) {
|
|||
}
|
||||
|
||||
|
||||
void enabled_printing() {
|
||||
void enable_printing() {
|
||||
printing_enabled = true;
|
||||
serial_output();
|
||||
serial_high();
|
||||
|
@ -82,7 +82,7 @@ void print_string(char c[]) {
|
|||
|
||||
bool process_printer(uint16_t keycode, keyrecord_t *record) {
|
||||
if (keycode == PRINT_ON) {
|
||||
enabled_printing();
|
||||
enable_printing();
|
||||
return false;
|
||||
}
|
||||
if (keycode == PRINT_OFF) {
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
#include "process_unicode.h"
|
||||
#include "action_util.h"
|
||||
#include "eeprom.h"
|
||||
|
||||
static uint8_t first_flag = 0;
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
|
||||
#include "process_unicode_common.h"
|
||||
#include "eeprom.h"
|
||||
|
||||
static uint8_t input_mode;
|
||||
uint8_t mods;
|
||||
|
|
|
@ -125,8 +125,8 @@ static void get_led_state_string(char* output, visualizer_state_t* state) {
|
|||
pos += 5;
|
||||
}
|
||||
if (state->status.leds & (1u << USB_LED_KANA)) {
|
||||
memcpy(output + pos, "KANA ", 5);
|
||||
pos += 5;
|
||||
memcpy(output + pos, "KANA", 4);
|
||||
pos += 4;
|
||||
}
|
||||
output[pos] = 0;
|
||||
}
|
||||
|
|
|
@ -140,7 +140,6 @@ void process_record(keyrecord_t *record)
|
|||
|
||||
void process_action(keyrecord_t *record, action_t action)
|
||||
{
|
||||
bool do_release_oneshot = false;
|
||||
keyevent_t event = record->event;
|
||||
#ifndef NO_ACTION_TAPPING
|
||||
uint8_t tap_count = record->tap.count;
|
||||
|
@ -152,6 +151,7 @@ void process_action(keyrecord_t *record, action_t action)
|
|||
}
|
||||
|
||||
#ifndef NO_ACTION_ONESHOT
|
||||
bool do_release_oneshot = false;
|
||||
// notice we only clear the one shot layer if the pressed key is not a modifier.
|
||||
if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code)) {
|
||||
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "suspend.h"
|
||||
#include "timer.h"
|
||||
#include "led.h"
|
||||
#include "host.h"
|
||||
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "lufa.h"
|
||||
|
|
|
@ -23,8 +23,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
|
||||
/* max value on report descriptor */
|
||||
#ifndef MOUSEKEY_MOVE_MAX
|
||||
#define MOUSEKEY_MOVE_MAX 127
|
||||
#elif MOUSEKEY_MOVE_MAX > 127
|
||||
#error MOUSEKEY_MOVE_MAX needs to be smaller than 127
|
||||
#endif
|
||||
|
||||
#ifndef MOUSEKEY_WHEEL_MAX
|
||||
#define MOUSEKEY_WHEEL_MAX 127
|
||||
#elif MOUSEKEY_WHEEL_MAX > 127
|
||||
#error MOUSEKEY_WHEEL_MAX needs to be smaller than 127
|
||||
#endif
|
||||
|
||||
#ifndef MOUSEKEY_MOVE_DELTA
|
||||
#define MOUSEKEY_MOVE_DELTA 5
|
||||
|
|
|
@ -92,6 +92,9 @@ endif
|
|||
endif
|
||||
CFLAGS += -Wall
|
||||
CFLAGS += -Wstrict-prototypes
|
||||
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
|
||||
CFLAGS += -Werror
|
||||
endif
|
||||
#CFLAGS += -mshort-calls
|
||||
#CFLAGS += -fno-unit-at-a-time
|
||||
#CFLAGS += -Wundef
|
||||
|
@ -115,6 +118,9 @@ CPPFLAGS += -O$(OPT)
|
|||
CPPFLAGS += -w
|
||||
CPPFLAGS += -Wall
|
||||
CPPFLAGS += -Wundef
|
||||
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
|
||||
CPPFLAGS += -Werror
|
||||
endif
|
||||
#CPPFLAGS += -mshort-calls
|
||||
#CPPFLAGS += -fno-unit-at-a-time
|
||||
#CPPFLAGS += -Wstrict-prototypes
|
||||
|
|
Loading…
Reference in New Issue
Block a user