summaryrefslogtreecommitdiff
path: root/keyboards/helix/rev3_5rows
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2022-05-18 17:33:52 +0000
committerQMK Bot <hello@qmk.fm>2022-05-18 17:33:52 +0000
commit3904a6afbe41e35c231dc449e3e2fa839d7b35a9 (patch)
treee8df23b2fd6eb582c0f71e077b349d32557487cc /keyboards/helix/rev3_5rows
parent6503987c84994b2c6b5229db8b91c14d8bd11e41 (diff)
parent33d568e29b454e5ead83b9e7216bd807549cc9b6 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards/helix/rev3_5rows')
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/config.h72
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c99
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/layer_number.h26
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c31
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk81
5 files changed, 62 insertions, 247 deletions
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
index 02d4425d62..ab679d14b9 100644
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
@@ -1,26 +1,7 @@
-/*
-This is the c configuration file for the keymap
+// Copyright (c) 2022 Takeshi Ishii (mtei@github)
+// SPDX-License-Identifier: GPL-2.0-or-later
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2020 mtei
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
#undef TAPPING_TERM
#define TAPPING_TERM 300
@@ -37,50 +18,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PSEUDO_SPRINTF_DEFINED
-// place overrides here
-
-// If you need more program area, try select and reduce rgblight modes to use.
-
-#define DISABLE_SYNC_TIMER
-
-// Selection of RGBLIGHT MODE to use.
-#undef RGBLIGHT_ANIMATIONS
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-
-#if defined(LED_ANIMATIONS)
-# if LED_ANIMATIONS_LEVEL > 1
- #define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- //#define RGBLIGHT_EFFECT_SNAKE
- //#define RGBLIGHT_EFFECT_KNIGHT
- #define RGBLIGHT_EFFECT_CHRISTMAS
- #define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_ALTERNATING
-# else
- #define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- //#define RGBLIGHT_EFFECT_SNAKE
- //#define RGBLIGHT_EFFECT_KNIGHT
- //#define RGBLIGHT_EFFECT_CHRISTMAS
- #define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_ALTERNATING
-# endif
-#endif
-
-#endif /* CONFIG_USER_H */
-
-#ifdef DEBUG_CONFIG
-# include "debug_config.h"
-#endif
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c
index 16eff49244..d992425de7 100644
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c
@@ -15,16 +15,55 @@
*/
#include QMK_KEYBOARD_H
-#include "util.h"
-#include "bootloader.h"
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
+
+#include "key_blocks.h"
+#include "layer_number_util.h"
+
+#ifdef ENABLE_COLEMAK
+# define COLEMAK_Colemak (COLEMAK, " Colemak"),
+#else
+# define COLEMAK_Colemak
#endif
-#ifdef CONSOLE_ENABLE
- #include <print.h>
+#ifdef ENABLE_DVORAK
+# define DVORAK_Dvorak (DVORAK, " Dvorak"),
+#else
+# define DVORAK_Dvorak
+#endif
+#ifdef ENABLE_EUCALYN
+# define EUCALYN_Eucalyn (EUCALYN, " Eucalyn"),
+#else
+# define EUCALYN_Eucalyn
+#endif
+
+#define LAYER_NAME_LIST \
+ (QWERTY, " Qwerty"), \
+ COLEMAK_Colemak \
+ DVORAK_Dvorak \
+ EUCALYN_Eucalyn \
+ (KEYPAD, " Keypad"), \
+ (AUX, ":AUX"), \
+ (KAUX, ":00"), \
+ (LOWER, ":Func"), \
+ (RAISE, ":Extra"), \
+ (PADFUNC, ":PadFunc"), \
+ (ADJUST, ":Adjust")
+
+enum layer_number {
+ // _QWERTY, _COLEMAK, ...
+ MAP(BUILD_LAYER_ENUM_NUMBER, LAYER_NAME_LIST)
+};
+
+#ifdef OLED_ENABLE
+// static const char QWERTY_name[] PROGMEM = " Qwerty"; ...
+MAP(BUILD_LAYER_NAME_STR, LAYER_NAME_LIST)
+
+const char *layer_names[] = {
+ // [_QWERTY] = QWERTY_name, ...
+ MAP(BUILD_LAYER_NAME_TABLE, LAYER_NAME_LIST)
+};
#endif
-#include "layer_number.h"
+
+const size_t num_of_layer_names = GET_ITEM_COUNT(LAYER_NAME_LIST);
extern keymap_config_t keymap_config;
@@ -52,8 +91,6 @@ enum custom_keycodes {
#define ____ _______
#define KC_ADJ MO(_ADJUST)
-#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5
-#define _6_____7_____8_____9_____0 KC_6, KC_7, KC_8, KC_9, KC_0
#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \
KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC)
#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \
@@ -64,12 +101,6 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty */
-#define Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T
-#define Y_____U_____I_____O_____P KC_Y, KC_U, KC_I, KC_O, KC_P
-#define A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G
-#define H_____J_____K_____L____SCLN KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
-#define N_____M____COMM__DOT___SLSH KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
@@ -91,12 +122,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/* Colemak */
-#define Q_____W_____F_____P_____G KC_Q, KC_W, KC_F, KC_P, KC_G
-#define J_____L_____U_____Y____SCLN KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define A_____R_____S_____T_____D KC_A, KC_R, KC_S, KC_T, KC_D
-#define H_____N_____E_____I_____O KC_H, KC_N, KC_E, KC_I, KC_O
-#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
-#define K_____M____COMM__DOT___SLSH KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
@@ -109,6 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
+#ifdef ENABLE_COLEMAK
[_COLEMAK] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS,
@@ -116,14 +142,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
+#endif
/* Dvorak */
-#define QUOT_COMM___DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define F_____G_____C_____R_____L KC_F, KC_G, KC_C, KC_R, KC_L
-#define A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I
-#define D_____H_____T_____N_____S KC_D, KC_H, KC_T, KC_N, KC_S
-#define SCLN___Q_____J_____K_____X KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-#define B_____M_____W_____V_____Z KC_B, KC_M, KC_W, KC_V, KC_Z
#define GRV__SLSH KC_GRV, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
@@ -137,6 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
+#ifdef ENABLE_DVORAK
[_DVORAK] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS,
@@ -144,14 +166,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
+#endif
/* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
-#define Q_____W___COMM___DOT__SCLN KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
-#define M_____R_____D_____Y_____P KC_M, KC_R, KC_D, KC_Y, KC_P
-#define A_____O_____E_____I_____U KC_A, KC_O, KC_E, KC_I, KC_U
-#define G_____T_____K_____S_____N KC_G, KC_T, KC_K, KC_S, KC_N
-#define Z_____X_____C_____V_____F KC_Z, KC_X, KC_C, KC_V, KC_F
-#define B_____H_____J_____L____SLSH KC_B, KC_H, KC_J, KC_L, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
@@ -164,6 +181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
+#ifdef ENABLE_EUCALYN
[_EUCALYN] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS,
@@ -171,6 +189,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
+#endif
/* Keypad */
#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST
@@ -254,8 +273,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/* Lower */
-#define F1____F2____F3____F4____F5 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define F6____F7____F8____F9____F10 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SLCK, KC_INS
#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SLCK, KC_PAUS, XXXX
#define ADJ___ADJ KC_ADJ, KC_ADJ
@@ -391,21 +408,27 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
break;
case COLEMAK:
+#ifdef ENABLE_COLEMAK
if (record->event.pressed) {
update_base_layer(_COLEMAK);
}
+#endif
return false;
break;
case DVORAK:
+#ifdef ENABLE_DVORAK
if (record->event.pressed) {
update_base_layer(_DVORAK);
}
+#endif
return false;
break;
case EUCALYN:
+#ifdef ENABLE_EUCALYN
if (record->event.pressed) {
update_base_layer(_EUCALYN);
}
+#endif
return false;
break;
case KEYPAD:
@@ -455,7 +478,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- INIT_HELIX_OLED(); /* define in layer_number.h */
-}
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/layer_number.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/layer_number.h
deleted file mode 100644
index 1272feba4f..0000000000
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/layer_number.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-enum layer_number {
- _QWERTY = 0,
- _COLEMAK,
- _DVORAK,
- _EUCALYN,
- _KEYPAD,
- _AUX,
- _KAUX,
- _LOWER,
- _RAISE,
- _PADFUNC,
- _ADJUST,
-};
-
-#if defined(SSD1306OLED)
-extern void init_helix_oled(void);
-# define INIT_HELIX_OLED() init_helix_oled();
-#else
-# define INIT_HELIX_OLED()
-#endif
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c
deleted file mode 100644
index a093afe0a4..0000000000
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/matrix_output_unselect_delay.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2021 mtei
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
- /* If none of the keys are pressed,
- * there is no need to wait for time for the next line. */
- if (key_pressed) {
-# ifdef MATRIX_IO_DELAY
-# if MATRIX_IO_DELAY > 0
- wait_us(MATRIX_IO_DELAY);
-# endif
-# else
- wait_us(30);
-# endif
- }
-}
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
index 1d7f2f2744..a6ce7de118 100644
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
+++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
@@ -9,84 +9,3 @@ USER_NAME := mtei
ENCODER_ENABLE = no
LTO_ENABLE = no # if firmware size over limit, try this option
LED_ANIMATIONS = yes
-
-CUSTOM_DELAY = yes
-
-ifneq ($(strip $(HELIX)),)
- define KEYMAP_OPTION_PARSE
- # parse 'dispoff', 'consle', 'back', 'oled', 'no-ani', 'mini-ani', 'lto', 'no-lto', 'no-enc', 'scan', 'scan-api'
- $(if $(SHOW_PARCE),$(info parse .$1.)) #debug
- ifeq ($(strip $1),dispoff)
- OLED_ENABLE = no
- RGBLIGHT_ENABLE = no
- endif
- ifeq ($(strip $1),console)
- CONSOLE_ENABLE = yes
- endif
- ifeq ($(strip $1),debug)
- DEBUG_CONFIG = yes
- endif
- ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),)
- DEBUG_CONFIG = no
- endif
- ifneq ($(filter enc,$(strip $1)),)
- ENCODER_ENABLE = yes
- endif
- ifneq ($(filter noenc no-enc no_enc,$(strip $1)),)
- ENCODER_ENABLE = no
- endif
- ifeq ($(strip $1),oled)
- OLED_ENABLE = yes
- endif
- ifeq ($(strip $1),back)
- RGBLIGHT_ENABLE = yes
- endif
- ifneq ($(filter na no_ani no-ani,$(strip $1)),)
- LED_ANIMATIONS = no
- endif
- ifneq ($(filter mini-ani mini_ani,$(strip $1)),)
- LED_ANIMATIONS = mini
- endif
- ifneq ($(filter ani animation,$(strip $1)),)
- LED_ANIMATIONS = yes
- endif
- ifeq ($(strip $1),lto)
- LTO_ENABLE = yes
- endif
- ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
- LTO_ENABLE = no
- endif
- ifeq ($(strip $1),scan)
- # use DEBUG_MATRIX_SCAN_RATE
- # see docs/newbs_testing_debugging.md
- DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
- endif
- ifeq ($(strip $1),scan-api)
- # use DEBUG_MATRIX_SCAN_RATE
- # see docs/newbs_testing_debugging.md
- DEBUG_MATRIX_SCAN_RATE_ENABLE = api
- endif
- endef # end of KEYMAP_OPTION_PARSE
-
- COMMA=,
- $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \
- $(call KEYMAP_OPTION_PARSE,$(A_OPTION_NAME))))
-endif
-
-ifeq ($(strip $(LED_ANIMATIONS)), yes)
- OPT_DEFS += -DLED_ANIMATIONS
- OPT_DEFS += -DLED_ANIMATIONS_LEVEL=2
-endif
-
-ifeq ($(strip $(LED_ANIMATIONS)), mini)
- OPT_DEFS += -DLED_ANIMATIONS
- OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1
-endif
-
-ifeq ($(strip $(CUSTOM_DELAY)),yes)
- SRC += matrix_output_unselect_delay.c
-endif
-
-ifeq ($(strip $(DEBUG_CONFIG)), yes)
- OPT_DEFS += -DDEBUG_CONFIG
-endif