Merge branch 'master' into layouts/adam-lee
commit
9d4050586d
21
Makefile
21
Makefile
|
@ -21,6 +21,8 @@ override SILENT := false
|
||||||
|
|
||||||
ON_ERROR := error_occurred=1
|
ON_ERROR := error_occurred=1
|
||||||
|
|
||||||
|
BREAK_ON_ERRORS = no
|
||||||
|
|
||||||
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
||||||
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
||||||
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
|
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
|
||||||
|
@ -462,20 +464,25 @@ endef
|
||||||
|
|
||||||
include $(ROOT_DIR)/message.mk
|
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
|
# 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
|
# Otherwise the command line will become too long with a lot of keyboards and keymaps
|
||||||
define RUN_COMMAND
|
define RUN_COMMAND
|
||||||
+error_occurred=0;\
|
+error_occurred=0;\
|
||||||
$(COMMAND_$(SILENT_MODE)_$(COMMAND))\
|
$(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
|
endef
|
||||||
define RUN_TEST
|
define RUN_TEST
|
||||||
+error_occurred=0;\
|
+error_occurred=0;\
|
||||||
$($(TEST)_COMMAND)\
|
$($(TEST)_COMMAND)\
|
||||||
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
|
if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
|
# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
|
||||||
|
@ -527,14 +534,22 @@ test: test-all
|
||||||
.PHONY: test-clean
|
.PHONY: test-clean
|
||||||
test-clean: test-all-clean
|
test-clean: test-all-clean
|
||||||
|
|
||||||
|
ifdef SKIP_VERSION
|
||||||
|
SKIP_GIT := yes
|
||||||
|
endif
|
||||||
|
|
||||||
# Generate the version.h file
|
# Generate the version.h file
|
||||||
ifndef SKIP_GIT
|
ifndef SKIP_GIT
|
||||||
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
|
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
|
||||||
else
|
else
|
||||||
GIT_VERSION := NA
|
GIT_VERSION := NA
|
||||||
endif
|
endif
|
||||||
|
ifndef SKIP_VERSION
|
||||||
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
|
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_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
|
||||||
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(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
|
include $(ROOT_DIR)/testlist.mk
|
||||||
|
|
|
@ -176,22 +176,26 @@ endif
|
||||||
|
|
||||||
ifeq ($(strip $(UCIS_ENABLE)), yes)
|
ifeq ($(strip $(UCIS_ENABLE)), yes)
|
||||||
OPT_DEFS += -DUCIS_ENABLE
|
OPT_DEFS += -DUCIS_ENABLE
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
UNICODE_COMMON = yes
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
|
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
|
||||||
OPT_DEFS += -DUNICODEMAP_ENABLE
|
OPT_DEFS += -DUNICODEMAP_ENABLE
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
UNICODE_COMMON = yes
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(UNICODE_ENABLE)), yes)
|
ifeq ($(strip $(UNICODE_ENABLE)), yes)
|
||||||
OPT_DEFS += -DUNICODE_ENABLE
|
OPT_DEFS += -DUNICODE_ENABLE
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
UNICODE_COMMON = yes
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(UNICODE_COMMON)), yes)
|
||||||
|
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
|
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
|
||||||
OPT_DEFS += -DRGBLIGHT_ENABLE
|
OPT_DEFS += -DRGBLIGHT_ENABLE
|
||||||
SRC += $(QUANTUM_DIR)/light_ws2812.c
|
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 "print.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "matrix.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;
|
break;
|
||||||
case SWITCH_NDS:
|
case SWITCH_NDS:
|
||||||
if (record->event.pressed) {
|
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;
|
break;
|
||||||
case OPEN_CLOSE_PAREN:
|
case OPEN_CLOSE_PAREN:
|
||||||
if (record->event.pressed) {
|
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;
|
break;
|
||||||
case OPEN_CLOSE_BRACKET:
|
case OPEN_CLOSE_BRACKET:
|
||||||
|
@ -326,7 +326,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
break;
|
break;
|
||||||
case OPEN_CLOSE_CURLY:
|
case OPEN_CLOSE_CURLY:
|
||||||
if (record->event.pressed) {
|
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;
|
break;
|
||||||
case OPEN_CLOSE_SINGLE_QUOTE:
|
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:
|
case NotEq:
|
||||||
if (record->event.pressed) {
|
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;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include "yoruian.h"
|
#include "yoruian.h"
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
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,
|
(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,
|
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,
|
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,
|
BSPC, RALT, P2, TAB,
|
||||||
NO, NO,
|
NO, NO,
|
||||||
E, LSFT, NO, NO, ENT, SPC),
|
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, 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, TR, TR, TR, F1, F2, F3, F4, FT,
|
||||||
TR, TR, TR, TR, TR, TR, PAUS, LEFT, DOWN, UP, RGHT, FE,
|
TR, TR, TR, TR, TR, TR, PAUS, LEFT, DOWN, UP, RGHT, FE,
|
||||||
|
|
|
@ -18,9 +18,7 @@
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "action_layer.h"
|
#include "action_layer.h"
|
||||||
|
|
||||||
#undef KEYMAP
|
#define KEYMAP_YORUIAN( \
|
||||||
#define KEYMAP\
|
|
||||||
( \
|
|
||||||
/* Spacial positions. */ \
|
/* Spacial positions. */ \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
|
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, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
|
||||||
|
@ -30,24 +28,15 @@
|
||||||
k55, k56, k57, k58, \
|
k55, k56, k57, k58, \
|
||||||
k54, k59, \
|
k54, k59, \
|
||||||
k53, k52, k51, k5C, k5B, k5A) \
|
k53, k52, k51, k5C, k5B, k5A) \
|
||||||
\
|
KEYMAP( \
|
||||||
/* Matrix positions. */ \
|
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_##k00, KC_##k10, KC_##k20, KC_##k30, KC_##k40, KC_NO }, \
|
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_##k01, KC_##k11, KC_##k21, KC_##k31, KC_##k41, KC_##k51 }, \
|
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_##k02, KC_##k12, KC_##k22, KC_##k32, KC_##k42, KC_##k52 }, \
|
KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D, \
|
||||||
{ KC_##k03, KC_##k13, KC_##k23, KC_##k33, KC_##k43, KC_##k53 }, \
|
KC_##k55, KC_##k56, KC_##k57, KC_##k58, \
|
||||||
{ KC_##k04, KC_##k14, KC_##k24, KC_##k34, KC_##k44, KC_##k54 }, \
|
KC_##k54, KC_##k59, \
|
||||||
{ KC_##k05, KC_##k15, KC_##k25, KC_##k35, KC_NO, KC_##k55 }, \
|
KC_##k53, KC_##k52, KC_##k51, KC_##k5C, KC_##k5B, KC_##k5A)
|
||||||
{ 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 } \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define KC_ES KC_ESC
|
#define KC_ES KC_ESC
|
||||||
#define KC_LC KC_LCTL
|
#define KC_LC KC_LCTL
|
||||||
|
|
|
@ -115,6 +115,7 @@ inline matrix_row_t matrix_get_row(uint8_t row) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_print(void) {
|
void matrix_print(void) {
|
||||||
|
#ifndef NO_PRINT
|
||||||
print("\nr\\c ABCDEFGHIJKLMNOPQR\n");
|
print("\nr\\c ABCDEFGHIJKLMNOPQR\n");
|
||||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||||
matrix_row_t matrix_row = matrix_get_row(row);
|
matrix_row_t matrix_row = matrix_get_row(row);
|
||||||
|
@ -125,6 +126,7 @@ void matrix_print(void) {
|
||||||
}
|
}
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t matrix_key_count(void) {
|
uint8_t matrix_key_count(void) {
|
||||||
|
@ -132,4 +134,4 @@ uint8_t matrix_key_count(void) {
|
||||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++)
|
for (uint8_t row = 0; row < MATRIX_ROWS; row++)
|
||||||
count += bitpop32(matrix[row]);
|
count += bitpop32(matrix[row]);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
#include "MS-sculpt-mobile.h"
|
|
|
@ -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
|
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"
|
#include "action_macro.h"
|
||||||
|
|
||||||
#ifdef USE_BABLPASTE
|
#ifdef USE_BABLPASTE
|
||||||
|
@ -27,7 +28,7 @@ macro_t* switch_babble_mode( uint8_t id) {
|
||||||
// And else statements have problems, see https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html#SEC15
|
// And else statements have problems, see https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html#SEC15
|
||||||
#define BABLM(ent, macro...) \
|
#define BABLM(ent, macro...) \
|
||||||
if ( ent == shortcut ) \
|
if ( ent == shortcut ) \
|
||||||
{ action_macro_play( MACRO(macro)); return MACRO_NONE; }
|
{ action_macro_play( MACRO(macro)); return MACRO_NONE; }
|
||||||
|
|
||||||
|
|
||||||
/* this function runs the appropriate babblepaste macro, given
|
/* this function runs the appropriate babblepaste macro, given
|
||||||
|
@ -456,4 +457,4 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -9,9 +9,9 @@ and jeebak & algernon's keymap
|
||||||
*/
|
*/
|
||||||
#ifndef _babblePaste_h_included__
|
#ifndef _babblePaste_h_included__
|
||||||
#define _babblePaste_h_included__
|
#define _babblePaste_h_included__
|
||||||
|
#include "../MS_sculpt_mobile/config.h"
|
||||||
#include "action_layer.h"
|
#include "action_layer.h"
|
||||||
#include "quantum_keycodes.h"
|
#include "quantum_keycodes.h"
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#ifdef USE_BABLPASTE
|
#ifdef USE_BABLPASTE
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
#include "../../../MS_sculpt_mobile/config.h"
|
||||||
|
|
||||||
// place overrides here
|
// 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] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/*
|
/*
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
#include "../../../MS_sculpt_mobile/config.h"
|
||||||
|
|
||||||
#define USE_BABLPASTE
|
#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_layer.h"
|
||||||
#include "action_util.h"
|
#include "action_util.h"
|
||||||
#include "babblePaste.h"
|
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
#include "audio.h"
|
#include "audio.h"
|
|
@ -22,7 +22,7 @@
|
||||||
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||||
#define MOUSEKEY_WHEEL_MAX_SPEED 3
|
#define MOUSEKEY_WHEEL_MAX_SPEED 3
|
||||||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 1000
|
#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
|
||||||
#undef ONESHOT_TIMEOUT
|
#undef ONESHOT_TIMEOUT
|
||||||
#define ONESHOT_TIMEOUT 500
|
#define ONESHOT_TIMEOUT 500
|
||||||
#undef TAPPING_TOGGLE
|
#undef TAPPING_TOGGLE
|
||||||
|
|
|
@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
_______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \
|
_______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \
|
||||||
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
||||||
/* Layer 3: media layer */
|
/* Layer 3: media layer */
|
||||||
[MEDIA] = KEYMAP(\
|
[MEDIA] = KEYMAP(\
|
||||||
KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
|
KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
|
||||||
|
|
|
@ -153,12 +153,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
case 1: // M(1)
|
case 1: // M(1)
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
unregister_code(KC_LSFT);
|
unregister_code(KC_LSFT);
|
||||||
register_code(DE_MORE);
|
register_code(DE_LESS);
|
||||||
} else {
|
} else {
|
||||||
unregister_code(DE_MORE);
|
unregister_code(DE_LESS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return MACRO_NONE;
|
return MACRO_NONE;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -212,10 +212,10 @@ const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
float start_up[][2] = {
|
float start_up[][2] = {
|
||||||
{440.0*pow(2.0,(14)/12.0), 20},
|
MUSICAL_NOTE(_B5, 20),
|
||||||
{440.0*pow(2.0,(26)/12.0), 8},
|
MUSICAL_NOTE(_B6, 8),
|
||||||
{440.0*pow(2.0,(18)/12.0), 20},
|
MUSICAL_NOTE(_DS6, 20),
|
||||||
{440.0*pow(2.0,(26)/12.0), 8}
|
MUSICAL_NOTE(_B6, 8),
|
||||||
};
|
};
|
||||||
|
|
||||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||||
|
@ -323,7 +323,7 @@ void matrix_init_user(void) {
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
|
|
||||||
void play_goodbye_tone()
|
void play_goodbye_tone(void)
|
||||||
{
|
{
|
||||||
PLAY_NOTE_ARRAY(goodbye, false, 0);
|
PLAY_NOTE_ARRAY(goodbye, false, 0);
|
||||||
_delay_ms(150);
|
_delay_ms(150);
|
||||||
|
|
|
@ -179,5 +179,12 @@ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
||||||
__attribute__ ((weak))
|
__attribute__ ((weak))
|
||||||
uint16_t keymap_function_id_to_action( uint16_t function_id )
|
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]);
|
return pgm_read_word(&fn_actions[function_id]);
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,10 @@
|
||||||
#define CH_E KC_E
|
#define CH_E KC_E
|
||||||
#define CH_F KC_F
|
#define CH_F KC_F
|
||||||
#define CH_G KC_G
|
#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_H KC_H
|
||||||
#define CH_I KC_I
|
#define CH_I KC_I
|
||||||
#define CH_J KC_J
|
#define CH_J KC_J
|
||||||
|
|
|
@ -20,12 +20,12 @@
|
||||||
bool printing_enabled = false;
|
bool printing_enabled = false;
|
||||||
uint8_t character_shift = 0;
|
uint8_t character_shift = 0;
|
||||||
|
|
||||||
void enabled_printing() {
|
void enable_printing(void) {
|
||||||
printing_enabled = true;
|
printing_enabled = true;
|
||||||
serial_init();
|
serial_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void disable_printing() {
|
void disable_printing(void) {
|
||||||
printing_enabled = false;
|
printing_enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,9 +41,14 @@ void print_char(char c) {
|
||||||
USB_Init();
|
USB_Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_box_string(uint8_t text[]) {
|
void print_string(char c[]) {
|
||||||
uint8_t len = strlen(text);
|
for(uint8_t i = 0; i < strlen(c); i++)
|
||||||
uint8_t out[len * 3 + 8];
|
print_char(c[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_box_string(const char text[]) {
|
||||||
|
size_t len = strlen(text);
|
||||||
|
char out[len * 3 + 8];
|
||||||
out[0] = 0xDA;
|
out[0] = 0xDA;
|
||||||
for (uint8_t i = 0; i < len; i++) {
|
for (uint8_t i = 0; i < len; i++) {
|
||||||
out[i+1] = 0xC4;
|
out[i+1] = 0xC4;
|
||||||
|
@ -69,14 +74,9 @@ void print_box_string(uint8_t text[]) {
|
||||||
print_string(out);
|
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) {
|
bool process_printer(uint16_t keycode, keyrecord_t *record) {
|
||||||
if (keycode == PRINT_ON) {
|
if (keycode == PRINT_ON) {
|
||||||
enabled_printing();
|
enable_printing();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (keycode == PRINT_OFF) {
|
if (keycode == PRINT_OFF) {
|
||||||
|
|
|
@ -21,4 +21,6 @@
|
||||||
|
|
||||||
#include "protocol/serial.h"
|
#include "protocol/serial.h"
|
||||||
|
|
||||||
|
bool process_printer(uint16_t keycode, keyrecord_t *record);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -46,7 +46,7 @@ void serial_output(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void enabled_printing() {
|
void enable_printing() {
|
||||||
printing_enabled = true;
|
printing_enabled = true;
|
||||||
serial_output();
|
serial_output();
|
||||||
serial_high();
|
serial_high();
|
||||||
|
@ -82,7 +82,7 @@ void print_string(char c[]) {
|
||||||
|
|
||||||
bool process_printer(uint16_t keycode, keyrecord_t *record) {
|
bool process_printer(uint16_t keycode, keyrecord_t *record) {
|
||||||
if (keycode == PRINT_ON) {
|
if (keycode == PRINT_ON) {
|
||||||
enabled_printing();
|
enable_printing();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (keycode == PRINT_OFF) {
|
if (keycode == PRINT_OFF) {
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
#include "process_unicode.h"
|
#include "process_unicode.h"
|
||||||
#include "action_util.h"
|
#include "action_util.h"
|
||||||
|
#include "eeprom.h"
|
||||||
|
|
||||||
static uint8_t first_flag = 0;
|
static uint8_t first_flag = 0;
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "process_unicode_common.h"
|
#include "process_unicode_common.h"
|
||||||
|
#include "eeprom.h"
|
||||||
|
|
||||||
static uint8_t input_mode;
|
static uint8_t input_mode;
|
||||||
uint8_t mods;
|
uint8_t mods;
|
||||||
|
|
|
@ -125,8 +125,8 @@ static void get_led_state_string(char* output, visualizer_state_t* state) {
|
||||||
pos += 5;
|
pos += 5;
|
||||||
}
|
}
|
||||||
if (state->status.leds & (1u << USB_LED_KANA)) {
|
if (state->status.leds & (1u << USB_LED_KANA)) {
|
||||||
memcpy(output + pos, "KANA ", 5);
|
memcpy(output + pos, "KANA", 4);
|
||||||
pos += 5;
|
pos += 4;
|
||||||
}
|
}
|
||||||
output[pos] = 0;
|
output[pos] = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,7 +140,6 @@ void process_record(keyrecord_t *record)
|
||||||
|
|
||||||
void process_action(keyrecord_t *record, action_t action)
|
void process_action(keyrecord_t *record, action_t action)
|
||||||
{
|
{
|
||||||
bool do_release_oneshot = false;
|
|
||||||
keyevent_t event = record->event;
|
keyevent_t event = record->event;
|
||||||
#ifndef NO_ACTION_TAPPING
|
#ifndef NO_ACTION_TAPPING
|
||||||
uint8_t tap_count = record->tap.count;
|
uint8_t tap_count = record->tap.count;
|
||||||
|
@ -152,6 +151,7 @@ void process_action(keyrecord_t *record, action_t action)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_ACTION_ONESHOT
|
#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.
|
// 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)) {
|
if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code)) {
|
||||||
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "suspend.h"
|
#include "suspend.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
#include "host.h"
|
||||||
|
|
||||||
#ifdef PROTOCOL_LUFA
|
#ifdef PROTOCOL_LUFA
|
||||||
#include "lufa.h"
|
#include "lufa.h"
|
||||||
|
|
|
@ -23,8 +23,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
/* max value on report descriptor */
|
/* max value on report descriptor */
|
||||||
#define MOUSEKEY_MOVE_MAX 127
|
#ifndef MOUSEKEY_MOVE_MAX
|
||||||
#define MOUSEKEY_WHEEL_MAX 127
|
#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
|
#ifndef MOUSEKEY_MOVE_DELTA
|
||||||
#define MOUSEKEY_MOVE_DELTA 5
|
#define MOUSEKEY_MOVE_DELTA 5
|
||||||
|
|
|
@ -92,6 +92,9 @@ endif
|
||||||
endif
|
endif
|
||||||
CFLAGS += -Wall
|
CFLAGS += -Wall
|
||||||
CFLAGS += -Wstrict-prototypes
|
CFLAGS += -Wstrict-prototypes
|
||||||
|
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
|
||||||
|
CFLAGS += -Werror
|
||||||
|
endif
|
||||||
#CFLAGS += -mshort-calls
|
#CFLAGS += -mshort-calls
|
||||||
#CFLAGS += -fno-unit-at-a-time
|
#CFLAGS += -fno-unit-at-a-time
|
||||||
#CFLAGS += -Wundef
|
#CFLAGS += -Wundef
|
||||||
|
@ -115,6 +118,9 @@ CPPFLAGS += -O$(OPT)
|
||||||
CPPFLAGS += -w
|
CPPFLAGS += -w
|
||||||
CPPFLAGS += -Wall
|
CPPFLAGS += -Wall
|
||||||
CPPFLAGS += -Wundef
|
CPPFLAGS += -Wundef
|
||||||
|
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
|
||||||
|
CPPFLAGS += -Werror
|
||||||
|
endif
|
||||||
#CPPFLAGS += -mshort-calls
|
#CPPFLAGS += -mshort-calls
|
||||||
#CPPFLAGS += -fno-unit-at-a-time
|
#CPPFLAGS += -fno-unit-at-a-time
|
||||||
#CPPFLAGS += -Wstrict-prototypes
|
#CPPFLAGS += -Wstrict-prototypes
|
||||||
|
|
Loading…
Reference in New Issue