Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove LAYOUT_kc macros from edvorakjp keymaps #12217

Merged
merged 12 commits into from
Apr 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions keyboards/crkbd/keymaps/edvorakjp/config.h
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#pragma once

/* Select hand configuration */

// #define MASTER_LEFT
#define MASTER_RIGHT
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

#define SSD1306OLED
#define SWAP_SCLN

// #define TAPPING_FORCE_HOLD
#define TAPPING_TERM 300
#define IGNORE_MOD_TAP_INTERRUPT

#undef RGBLED_NUM
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 100
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
# define RGBLED_NUM 27
# define RGBLIGHT_LIMIT_VAL 100
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 17
# define RGBLIGHT_VAL_STEP 17
#endif // RGBLIGHT_ENABLE

#endif // CONFIG_USER_H
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
121 changes: 48 additions & 73 deletions keyboards/crkbd/keymaps/edvorakjp/keymap.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#include QMK_KEYBOARD_H
#ifdef PROTOCOL_LUFA
#include "split_util.h"
#endif
#ifdef SSD1306OLED
#include "oled.h"
# include "split_util.h"
#endif

#include "edvorakjp.h"
Expand All @@ -14,85 +11,63 @@
* };
*/

#define KC_ KC_TRNS

#define KC_TMB1 KC_LA(TAB)
#define KC_TMB2 KC_LS(SPC)
#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
#define KC_TMB5 KC_RC(BSPC)
#define KC_TMB6 KC_RG(ENT)
#define KC_TMB7 KC_RC(DEL)
#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)

// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_EDVORAK] = LAYOUT_kc(
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
GRV ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
ESC ,SCLN, X , C , V , Z , H , J , K , L , B ,SLSH,
//`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----'
TMB1 ,TMB2,TMB3, TMB4,TMB5,TMB6
// `-----+----+----' `----+----+-----'
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
//`--------------------------' `--------------------------'
),

[_LOWER] = LAYOUT_kc(
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
, , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
PSCR, , HOME , PGDN , PGUP ,END , LEFT, DOWN , UP , RGHT , , ,
//`----+----+------+------+------+----+----| |----+----+------+------+-------+----+----'
, , NO , MAC ,TMB7,
// `-----+----+----' `----+----+-----'
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
//`--------------------------' `--------------------------'
),

[_RAISE] = LAYOUT_kc(
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
PSCR, ,HOME ,PGDN ,PGUP ,END , LEFT,DOWN , UP ,RGHT , , ,
//`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----'
, ,WIN , NO , ,
// `-----+----+----' `----+----+----'
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
)
};

#ifdef SSD1306OLED
void matrix_init_keymap(void) {
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef MASTER_RIGHT
iota_gfx_init(has_usb()); // turns on the display
#else
iota_gfx_init(!has_usb());
#endif // MASTER_RIGHT
}

void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}
#endif
// clang-format on

#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
uint32_t layer_state_set_keymap(uint32_t state) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case _LOWER:
rgblight_sethsv_noeeprom_red();
break;
case _RAISE:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case L_EDVORAKJP_LOWER:
rgblight_sethsv_noeeprom_red();
break;
case L_EDVORAKJP_RAISE:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
}
#endif
107 changes: 43 additions & 64 deletions keyboards/crkbd/keymaps/edvorakjp/oled.c
Original file line number Diff line number Diff line change
@@ -1,76 +1,55 @@
#include <stdio.h>
#include <string.h>
#include "oled.h"

// NOTE: Redefined to avoid to use snprintf(); It makes size of firmware big.
const char *read_mode_icon(bool windows_mode) {
static const char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}};
static char mode_icon[10];

int mode_number = windows_mode ? 1 : 0;
strcpy(mode_icon, logo[mode_number][0]);

strcat(mode_icon, "\n");
strcat(mode_icon, logo[mode_number][1]);

return mode_icon;
#ifdef OLED_DRIVER_ENABLE
void render_host_led_state(void) { oled_write(read_host_led_state(), false); }

void render_layer_state(void) {
char layer_name[17];
oled_write_P(PSTR("Layer: "), false);

switch (biton32(layer_state)) {
case L_EDVORAKJP_BASE:
oled_write_ln_P(PSTR("Default"), false);
break;
case L_EDVORAKJP_LOWER:
oled_write_ln_P(PSTR("Lower"), false);
break;
case L_EDVORAKJP_RAISE:
oled_write_ln_P(PSTR("Raise"), false);
break;
default:
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
oled_write_ln(layer_name, false);
}
}

const char *read_layer_state(void) {
static char layer_state_str[24];
char layer_name[17];

switch (biton32(layer_state)) {
case L_BASE:
strcpy(layer_name, "Default");
break;
case _RAISE:
strcpy(layer_name, "Raise");
break;
case _LOWER:
strcpy(layer_name, "Lower");
break;
default:
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
}
void render_logo(void) { oled_write(read_logo(), false); }

strcpy(layer_state_str, "Layer: ");
void render_mode_icon(bool is_windows) {
static const char logo[][2][3] = {
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
};
static char mode_icon[10];

strcat(layer_state_str, layer_name);
strcat(layer_state_str, "\n");
return layer_state_str;
snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
oled_write(mode_icon, false);
}

const char *read_host_led_state(void) {
static char led_str[24];
strcpy(led_str, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : " ");
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? " CAPS" : " ");
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? " SCLK" : " ");
return led_str;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
// flips the display 180 degrees if offhand
return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
}

void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source) {
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
memcpy(dest->display, source->display, sizeof(dest->display));
dest->dirty = true;
}
}

void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;

matrix_clear(&matrix);
#ifdef MASTER_RIGHT
if (!is_master) {
#else
if (is_master) {
#endif // MASTER_RIGHT
matrix_write(&matrix, read_mode_icon(!get_enable_kc_lang()));
matrix_write(&matrix, " ");
matrix_write(&matrix, read_layer_state());
matrix_write(&matrix, read_host_led_state());
} else {
matrix_write(&matrix, read_logo());
}
matrix_update(&display, &matrix);
void oled_task_user(void) {
if (is_keyboard_left()) {
render_mode_icon(!get_enable_kc_lang());
render_layer_state();
render_host_led_state();
} else {
render_logo();
}
}
#endif // OLED_DRIVER_ENABLE
25 changes: 9 additions & 16 deletions keyboards/crkbd/keymaps/edvorakjp/oled.h
Original file line number Diff line number Diff line change
@@ -1,24 +1,17 @@
#ifndef OLED_USER_H
#define OLED_USER_H
#pragma once

//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#include "ssd1306.h"
#include "edvorakjp.h"

//assign the right code to your layers for OLED display
#define L_BASE 0

extern uint8_t is_master;
extern bool japanese_mode;

// method prototypes defined in crkbd/lib
extern const char *read_host_led_state(void);
extern const char *read_logo(void);
extern const char *read_mode_icon(bool swap);

const char *read_mode_icon(bool swap);
const char *read_layer_state(void);
const char *read_host_led_state(void);
void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source);
void iota_gfx_task_user(void);

#endif // OLED_CONFIG_USER_H
void render_host_led_state(void);
void render_layer_state(void);
void render_logo(void);
void render_mode_icon(bool is_windows);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
void oled_task_user(void);
12 changes: 4 additions & 8 deletions keyboards/crkbd/keymaps/edvorakjp/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,13 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
TAP_DANCE_ENABLE = yes
OLED_DRIVER_ENABLE = yes

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

# If you want to change the display of OLED, you need to change here
SRC += ./lib/glcdfont.c \
SRC += ./lib/host_led_state_reader.c \
./lib/logo_reader.c \
oled.c \
# ./lib/rgb_state_reader.c \
# ./lib/layer_state_reader.c \
# ./lib/keylogger.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
./lib/mode_icon_reader.c \
oled.c
25 changes: 11 additions & 14 deletions keyboards/helix/rev2/keymaps/edvorakjp/config.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#pragma once

#define SWAP_SCLN

Expand All @@ -12,15 +11,13 @@

// Selection of RGBLIGHT MODE to use.
#if defined(LED_ANIMATIONS)
//#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 /* CONFIG_USER_H */
//# 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 // LED_ANIMATIONS
Loading