1
0
Fork 0

[Keyboard] Corne - Remove legacy revision support (#12226)

This commit is contained in:
Drashna Jael're 2021-05-24 23:23:20 -07:00 committed by GitHub
parent 8e22da67c1
commit 57158cc3bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
71 changed files with 215 additions and 2269 deletions

View file

@ -29,7 +29,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
SEND_STRING("() => {}");
} else {
SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_ENTER));
SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_ENTER));
}
return false;
}
@ -69,7 +69,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_master) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
@ -93,37 +94,37 @@ void render_bootmagic_status(bool status) {
void oled_render_amsterdam_flag(void) {
// 'Flag_of_Amsterdam', 128x32px
static const char PROGMEM amsterdam_flag[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0,
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff,
0xff, 0x7f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff,
0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0,
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x0f, 0x07, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0,
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff,
0xff, 0x7f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff,
0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0,
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x0f, 0x07, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(amsterdam_flag, sizeof(amsterdam_flag));

View file

@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include <stdio.h>
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
@ -71,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_master) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
@ -157,7 +158,7 @@ void oled_render_logo(void) {
}
void oled_task_user(void) {
if (is_master) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {

View file

@ -1,15 +1,10 @@
#include QMK_KEYBOARD_H
#include "split_util.h"
extern keymap_config_t keymap_config;
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define ESC_CTL LCTL_T(KC_ESC)
@ -26,7 +21,7 @@ enum crkbd_layers {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = LAYOUT( \
[_DVORAK] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------. ,-----------------------------------------------.
KC_TAB, KC_QUOT,KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,\
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
@ -39,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_LOWER] = LAYOUT( \
[_LOWER] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------. ,-----------------------------------------------.
KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RIGHT,KC_RPRN,\
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
@ -51,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`-----------------------' `----------------------'
),
[_RAISE] = LAYOUT( \
[_RAISE] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------. ,-----------------------------------------------.
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9,KC_RIGHT, KC_0, \
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
@ -63,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`-----------------------' `----------------------'
),
[_ADJUST] = LAYOUT( \
[_ADJUST] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------. ,-----------------------------------------------.
RGB_TOG,RGB_HUI,RGB_SAI,RGB_VAI,_______,RGB_M_T, _______,_______,_______,_______,KC_RIGHT,_______,\
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
@ -82,7 +77,7 @@ uint32_t layer_state_set_user(uint32_t state) {
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!isLeftHand)
if (!is_keyboard_left())
return OLED_ROTATION_180; // flips the display 180 to see it from my side
return rotation;
}

View file

@ -11,7 +11,7 @@
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
[_QWERTY] = LAYOUT_split_3x6_3(
//|-----------------------------------------------------| |-----------------------------------------------------|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_LOWER] = LAYOUT(
[_LOWER] = LAYOUT_split_3x6_3(
//|-----------------------------------------------------| |-----------------------------------------------------|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|--------------------------| |--------------------------|
),
[_RAISE] = LAYOUT(
[_RAISE] = LAYOUT_split_3x6_3(
//|-----------------------------------------------------| |-----------------------------------------------------|
KC_ESC, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, KC_AMPR, KC_PIPE, KC_EXLM, KC_ASTR, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|--------------------------| |--------------------------|
),
[_ADJUST] = LAYOUT(
[_ADJUST] = LAYOUT_split_3x6_3(
//|-----------------------------------------------------| |-----------------------------------------------------|
XXXXXXX, CK_RST, CK_DOWN, CK_UP, CK_TOGG, RGB_TOG, MU_TOG, KC_F12, KC_F7, KC_F8, KC_F9, XXXXXXX,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|

View file

@ -257,7 +257,7 @@ void oled_task_user(void) {
}
#endif
if (is_master) {
if (is_keyboard_master()) {
render_status_main();
} else {
render_status_secondary();

View file

@ -29,6 +29,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS
#define SSD1306OLED
#define USE_SSD_I2C
#define USE_SERIAL_PD2

View file

@ -1,13 +1,15 @@
#include QMK_KEYBOARD_H
#include "hvp.c"
#ifdef SSD1306OLED
# include "ssd1306.h"
# include <string.h>
#endif
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
// 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
@ -25,7 +27,7 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
[_QWERTY] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
LT(_ADJUST,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
@ -33,35 +35,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),KC_SFTENT,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT
KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT
//`--------------------' `--------------------'
),
[_RAISE] = LAYOUT(
[_RAISE] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
_______, _______, _______, _______, _______, _______
_______, _______, _______, _______, _______, _______
//`--------------------' `--------------------'
),
[_LOWER] = LAYOUT(
[_LOWER] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
_______, _______, _______, _______, _______, _______
_______, _______, _______, _______, _______, _______
//`--------------------' `--------------------'
),
[_ADJUST] = LAYOUT(
[_ADJUST] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
_______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
@ -69,12 +71,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|------+------+------+------+------+------| |------+------+------+------+------+------|
RESET,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
_______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______
_______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______
//`--------------------' `--------------------'
)
};
int RGB_current_mode;
int RGB_current_mode;
// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
@ -91,7 +93,7 @@ void matrix_init_user(void) {
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
iota_gfx_init(); // turns on the display
#endif
}
@ -115,10 +117,10 @@ void matrix_scan_user(void) {
}
void matrix_render_user(struct CharacterMatrix *matrix) {
if (is_master) {
if (is_keyboard_master()) {
// If you want to change the display of OLED, you need to change here
matrix_write_ln(matrix, read_layer_state());
matrix_write_ln(matrix, read_keylog());
matrix_write(matrix, read_layer_state());
matrix_write(matrix, read_keylog());
//matrix_write_ln(matrix, read_keylogs());
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
//matrix_write_ln(matrix, read_host_led_state());
@ -180,4 +182,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
}
return true;
}
}

View file

@ -1,4 +1,7 @@
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c
# If you want to change the display of OLED, you need to change here
SRC += ./lib/glcdfont.c \
./lib/rgb_state_reader.c \
@ -11,4 +14,4 @@ SRC += ./lib/glcdfont.c \
TAP_DANCE_ENABLE = yes
EXTRAKEY_ENABLE = yes # Audio control and System control
# LOCAL_GLCDFONT = yes
# LOCAL_GLCDFONT = yes

View file

@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS
#define SSD1306OLED
#define USE_SSD_I2C
#define USE_SERIAL_PD2

View file

@ -9,8 +9,6 @@
#include "ssd1306.h"
#endif
extern keymap_config_t keymap_config;
extern uint8_t is_master;
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
@ -24,7 +22,7 @@ extern rgblight_config_t rgblight_config;
K31, K32, K33, K34, K35, K36 \
)
#define LAYOUT_crkbd_wrapper(...) LAYOUT(__VA_ARGS__)
#define LAYOUT_crkbd_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
#define QWERTY_4_CRKBD KC_LCTL, MO(_LW), KC_SPC, KC_ENT, MO(_LW), KC_RALT
@ -37,28 +35,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QWERTY_3_12,
QWERTY_4_DOX
),
[_LW] = LAYOUT_crkbd_wrapper(
LOWER_1_12,
LOWER_2_12,
LOWER_3_12,
LOWER_4_DOX
),
[_NV] = LAYOUT_crkbd_wrapper(
NAV_1_12,
NAV_2_12,
NAV_3_12,
NAV_4_DOX
),
[_NP] = LAYOUT_crkbd_wrapper(
NUMPAD_1_12,
NUMPAD_2_12,
NUMPAD_3_12,
NUMPAD_4_DOX
),
[_MS] = LAYOUT_crkbd_wrapper(
MOUSE_1_12,
MOUSE_2_12,
@ -70,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void matrix_init_user(void) {
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
iota_gfx_init(); // turns on the display
#endif
}
@ -87,9 +85,9 @@ char matrix_line_str[24];
const char *read_layer_state(void) {
uint8_t layer = biton32(layer_state);
strcpy(matrix_line_str, "Layer: ");
switch (layer)
{
case _QW:
@ -115,9 +113,9 @@ const char *read_layer_state(void) {
}
const char *read_usb_state(void) {
strcpy(matrix_line_str, "USB : ");
switch (USB_DeviceState) {
case DEVICE_STATE_Unattached:
strcat(matrix_line_str, "Unattached");
@ -149,10 +147,13 @@ void matrix_scan_user(void) {
}
void matrix_render_user(struct CharacterMatrix *matrix) {
if (is_master) {
matrix_write_ln(matrix, read_layer_state());
matrix_write_ln(matrix, read_usb_state());
matrix_write_ln(matrix, read_keylogs());
if (is_keyboard_master()) {
matrix_write(matrix, read_layer_state());
matrix_write(matrix, "\n");
matrix_write(matrix, read_usb_state());
matrix_write(matrix, "\n");
matrix_write(matrix, read_keylogs());
matrix_write(matrix, "\n");
} else {
matrix_write(matrix, read_logo());
}

View file

@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
@ -29,3 +29,6 @@ SRC += ./lib/glcdfont.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c

View file

@ -29,7 +29,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
//#define SSD1306OLED
#define SSD1306OLED
#define USE_SSD_I2C
#define USE_SERIAL_PD2

View file

@ -1,9 +1,9 @@
#include QMK_KEYBOARD_H
#include "enums.h"
#include "layer.h"
#include "lufa.h"
// [Init Variables] ----------------------------------------------------------//
extern uint8_t is_master;
// Oled timer similar to Drashna's
static uint32_t oled_timer = 0;
// Boolean to store LED state
@ -13,35 +13,35 @@ bool master_oled_cleared = false;
// [Keymaps] -----------------------------------------------------------------//
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
[_QWERTY] = LAYOUT_split_3x6_3(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
LSFT_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
LGUI_T(KC_PGUP), MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), LALT_T(KC_PGDN)
),
[_NUM] = LAYOUT(
[_NUM] = LAYOUT_split_3x6_3(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
LSFT_T(KC_TAB), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, KC_NO,
KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_F11, KC_NO,
LGUI_T(KC_PGUP), KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, LALT_T(KC_PGDN)
),
[_SYM] = LAYOUT(
[_SYM] = LAYOUT_split_3x6_3(
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
LSFT_T(KC_TAB), RGB_TOG, KC_MPLY, KC_MUTE, KC_VOLU, KC_VOLD, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
KC_LCTL, KC_CALC, KC_MYCM, KC_MPRV, KC_MNXT, TG(_GAME), KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
LGUI_T(KC_PGUP), KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, LALT_T(KC_PGDN)
),
[_GAME] = LAYOUT(
[_GAME] = LAYOUT_split_3x6_3(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, KC_NO,
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_PGUP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TAB, MO(_WEAPON), KC_SPC, KC_ENT, KC_TRNS, KC_NO
),
[_WEAPON] = LAYOUT(
[_WEAPON] = LAYOUT_split_3x6_3(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_7, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,
@ -128,7 +128,7 @@ void matrix_scan_user(void) {
#ifdef OLED_DRIVER_ENABLE
// Init Oled and Rotate....
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!has_usb())
if (!is_keyboard_master())
return OLED_ROTATION_180; // flips the display 180 to see it from my side
return rotation;
}
@ -176,7 +176,7 @@ void oled_task_user(void) {
// First time out switches to logo as first indication of iddle.
if (timer_elapsed32(oled_timer) > 100000 && timer_elapsed32(oled_timer) < 479999) {
// Render logo on both halves before full timeout
if (is_master && !master_oled_cleared) {
if (is_keyboard_master() && !master_oled_cleared) {
// Clear master OLED once so the logo renders properly
oled_clear();
master_oled_cleared = true;
@ -202,7 +202,7 @@ void oled_task_user(void) {
render_logo();
break;
default:
if (is_master) {
if (is_keyboard_master()) {
render_master_oled();
} else {
render_slave_oled();

View file

@ -1,5 +1,6 @@
#include QMK_KEYBOARD_H
#include "enums.h"
#include "lufa.h"
// Render Blank Space
void render_space(void) {

View file

@ -10,3 +10,6 @@ OLED_DRIVER_ENABLE = yes
# If you want to change the display of OLED, you need to change here
SRC += logo_reader.c \
layer.c
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c

View file

@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS
#define SSD1306OLED
#define USE_SSD_I2C
#define USE_SERIAL_PD2

View file

@ -17,8 +17,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
extern uint8_t is_master;
#ifdef SSD1306OLED
# include "ssd1306.h"
# include <string.h>
#endif
enum corny_layers {
_QWERTY,
@ -108,7 +110,7 @@ void matrix_init_user(void) {
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
iota_gfx_init(); // turns on the display
#endif
}
@ -132,10 +134,10 @@ void matrix_scan_user(void) {
}
void matrix_render_user(struct CharacterMatrix *matrix) {
if (is_master) {
if (is_keyboard_master()) {
// If you want to change the display of OLED, you need to change here
matrix_write_ln(matrix, read_layer_state());
matrix_write_ln(matrix, read_keylog());
matrix_write(matrix, read_layer_state());
matrix_write(matrix, read_keylog());
//matrix_write_ln(matrix, read_keylogs());
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
//matrix_write_ln(matrix, read_host_led_state());

View file

@ -8,3 +8,6 @@ SRC += ./lib/glcdfont.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c

View file

@ -8,7 +8,7 @@
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
LAYOUT( \
LAYOUT_split_3x6_3( \
KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \
KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \

View file

@ -113,7 +113,7 @@ inline static char get_ascii(int16_t keycode){
oled_rotation_t oled_init_user(oled_rotation_t rotation){
oled_rotation_t oled_rot=OLED_ROTATION_180;
if(true==is_master){
if(true==is_keyboard_master()){
#ifdef OLED_VERTICAL
oled_rot=OLED_ROTATION_270;
#else
@ -313,7 +313,7 @@ void oled_task_user(void){
oled_off();
}else{
oled_on();
if(true==is_master){
if(true==is_keyboard_master()){
render_status();
}else{
render_logo();

View file

@ -34,9 +34,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_MATRIX_SAT_STEP 10
#define RGB_MATRIX_VAL_STEP 10
#define RGB_MATRIX_SPD_STEP 10
// #define RGB_MATRIX_KEYPRESSES
// #define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// BEGIN: Disable RGB Effects
//#define DISABLE_RGB_MATRIX_SOLID_COLOR
//#define DISABLE_RGB_MATRIX_ALPHAS_MODS
@ -82,7 +82,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
// END: RGB_MATRIX_KEYPRESSES
// END: Disable RGB Effects
#endif
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#define OLED_DISABLE_TIMEOUT
#define OLED_DISABLE_TIMEOUT
#define LAYOUT LAYOUT_split_3x6_3

View file

@ -1,6 +1,8 @@
#include QMK_KEYBOARD_H
#include "ninjonas.h"
uint8_t is_master;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
@ -98,4 +100,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`---------------------' `---------------------'
),
*/
};
};

View file

@ -38,21 +38,21 @@ enum crkbd_layers {
#define ALTKN ALT_T(KC_LANG1)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
[_QWERTY] = LAYOUT_split_3x6_3(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
CTLTB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
GUIEI, LOWER, KC_SPC, KC_ENT, RAISE, ALTKN
),
[_LOWER] = LAYOUT(
[_LOWER] = LAYOUT_split_3x6_3(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
CTLTB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX,
KC_LSFT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX,
GUIEI, LOWER, KC_SPC, KC_ENT, RAISE, ALTKN
),
[_RAISE] = LAYOUT(
[_RAISE] = LAYOUT_split_3x6_3(
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
CTLTB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = LAYOUT(
[_ADJUST] = LAYOUT_split_3x6_3(
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@ -192,7 +192,7 @@ void render_status_main(void) {
void oled_task_user(void) {
update_log();
if (is_master) {
if (is_keyboard_master()) {
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_crkbd_logo();

View file

@ -61,8 +61,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_DRIVER_ENABLE
#include <stdio.h>
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_master) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
@ -148,7 +149,7 @@ void oled_render_logo(void) {
}
void oled_task_user(void) {
if (is_master) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {

View file

@ -104,8 +104,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef OLED_DRIVER_ENABLE
# include <stdio.h>
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_master) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
@ -203,7 +205,7 @@ void oled_render_logo(void) {
}
void oled_task_user(void) {
if (is_master) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {

View file

@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H
extern uint8_t is_master;
static uint32_t oled_timer = 0;
#ifdef RGB_MATRIX_ENABLE
@ -84,7 +83,7 @@ user_config_t user_config;
#define KC_EUR ALGR(KC_5)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAKDHM] = LAYOUT( \
[_COLEMAKDHM] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, BSP_DEL,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -96,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
),
[_GAMING] = LAYOUT( \
[_GAMING] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -108,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
),
[_GAMING_EXT] = LAYOUT( \
[_GAMING_EXT] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, KC_1, KC_2, _______, KC_3, KC_4, _______, _______, _______, _______, _______, KC_DEL,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -120,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
),
[_NUMPAD] = LAYOUT( \
[_NUMPAD] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, KC_P7, KC_P8, KC_P9, XXXXXXX, _______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -132,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
),
[_SYM] = LAYOUT( \
[_SYM] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -144,7 +143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
),
[_NAV] = LAYOUT( \
[_NAV] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_BSPC,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -156,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
),
[_UTIL] = LAYOUT( \
[_UTIL] = LAYOUT_split_3x6_3( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
RESET, XXXXXXX, KC_MPRV, KC_VOLU, KC_MNXT, COLEMAK, RGB_IDL, RGB_MAP, RGB_NXS, XXXXXXX, RGB_HUD, RGB_HUI,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@ -183,7 +182,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_master) {
if (is_keyboard_master()) {
return OLED_ROTATION_270;
} else {
return OLED_ROTATION_180;
@ -299,7 +298,7 @@ void oled_task_user(void) {
oled_on();
}
if (is_master) {
if (is_keyboard_master()) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_crkbd_logo();
@ -344,7 +343,7 @@ void check_default_layer(uint8_t type) {
void rgb_matrix_indicators_user(void) {
if (
user_config.rgb_layer_change && !g_suspend_state && rgb_matrix_config.enable &&
user_config.rgb_layer_change && rgb_matrix_config.enable &&
(!user_config.rgb_matrix_idle_anim || rgb_matrix_get_mode() != user_config.rgb_matrix_idle_mode)
)
{

View file

@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
#define SSD1306OLED
// #define SSD1306OLED
#define USE_SERIAL_PD2

View file

@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
TAP_DANCE_ENABLE = no

View file

@ -11,8 +11,6 @@ extern rgblight_config_t rgblight_config;
static uint32_t oled_timer = 0;
#endif
extern uint8_t is_master;
// 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
@ -38,7 +36,7 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
[_QWERTY] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,---------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|------+------+------+------+------+------| |------+------+-------+------+-------+--------|
@ -50,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------' `--------------------'
),
[_LOWER] = LAYOUT(
[_LOWER] = LAYOUT_split_3x6_3(
//,---------------------------------------------. ,-----------------------------------------.
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
//|------+------+-------+-------+-------+-------| |------+------+------+------+------+------|
@ -62,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------' `--------------------'
),
[_RAISE] = LAYOUT(
[_RAISE] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
KC_ESC,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
@ -74,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------' `--------------------'
),
[_ADJUST] = LAYOUT(
[_ADJUST] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
RESET,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,KC__MUTE, KC_NO, KC_NO, KC_NO, KC_NO,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
@ -311,7 +309,7 @@ void oled_task_user(void) {
else { oled_on(); }
#endif
if (is_master) {
if (is_keyboard_master()) {
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_status_secondary();

View file

@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
#define SSD1306OLED
// #define SSD1306OLED
#define USE_SERIAL_PD2

View file

@ -15,8 +15,6 @@ extern keymap_config_t keymap_config;
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
// 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
@ -106,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LMOD, KC_LHUD, KC_LSAD, KC_LVAD, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
KC_GUIEI, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN
KC_GUIEI, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN
//`--------------------' `--------------------'
)
};
@ -250,4 +248,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}

View file

@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
@ -29,3 +29,6 @@ SRC += ./lib/glcdfont.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c

View file

@ -0,0 +1,46 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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/>.
*/
#pragma once
//#define USE_MATRIX_I2C
#ifdef KEYBOARD_crkbd_rev1_legacy
# undef USE_I2C
# define USE_SERIAL
#endif
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define USE_SERIAL_PD2
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"

View file

@ -0,0 +1,176 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, FN_MO13, KC_SPC, KC_ENT, FN_MO23, KC_RALT
//`--------------------------' `--------------------------'
),
[1] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
),
[2] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
),
[3] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
)
};
#ifdef OLED_DRIVER_ENABLE
#include <stdio.h>
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
#define L_BASE 0
#define L_LOWER 2
#define L_RAISE 4
#define L_ADJUST 8
void oled_render_layer_state(void) {
oled_write_P(PSTR("Layer: "), false);
switch (layer_state) {
case L_BASE:
oled_write_ln_P(PSTR("Default"), false);
break;
case L_LOWER:
oled_write_ln_P(PSTR("Lower"), false);
break;
case L_RAISE:
oled_write_ln_P(PSTR("Raise"), false);
break;
case L_ADJUST:
case L_ADJUST|L_LOWER:
case L_ADJUST|L_RAISE:
case L_ADJUST|L_LOWER|L_RAISE:
oled_write_ln_P(PSTR("Adjust"), false);
break;
}
}
char keylog_str[24] = {};
const char code_to_name[60] = {
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
void set_keylog(uint16_t keycode, keyrecord_t *record) {
char name = ' ';
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
(keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
if (keycode < 60) {
name = code_to_name[keycode];
}
// update keylog
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
record->event.key.row, record->event.key.col,
keycode, name);
}
void oled_render_keylog(void) {
oled_write(keylog_str, false);
}
void render_bootmagic_status(bool status) {
/* Show Ctrl-Gui Swap options */
static const char PROGMEM logo[][2][3] = {
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
};
if (status) {
oled_write_ln_P(logo[0][0], false);
oled_write_ln_P(logo[0][1], false);
} else {
oled_write_ln_P(logo[1][0], false);
oled_write_ln_P(logo[1][1], false);
}
}
void oled_render_logo(void) {
static const char PROGMEM crkbd_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
0};
oled_write_P(crkbd_logo, false);
}
void oled_task_user(void) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {
oled_render_logo();
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
set_keylog(keycode, record);
}
return true;
}
#endif // OLED_DRIVER_ENABLE

View file

@ -0,0 +1,5 @@
MOUSEKEY_ENABLE = no # Mouse keys
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
VIA_ENABLE = yes # Enable VIA
OLED_DRIVER_ENABLE = yes
LTO_ENABLE = yes

View file

@ -6,6 +6,7 @@
// #define EE_HANDS
#define SSD1306OLED
#define USE_SSD_I2C
#define USE_SERIAL_PD2

View file

@ -13,8 +13,6 @@
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
enum layer_names {
_QWERTY,
_LOWER,
@ -126,7 +124,7 @@ void matrix_init_user(void) {
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
iota_gfx_init(); // turns on the display
#endif
}
@ -145,11 +143,14 @@ void matrix_scan_user(void) {
}
void matrix_render_user(struct CharacterMatrix *matrix) {
if (is_master) {
if (is_keyboard_master()) {
// If you want to change the display of OLED, you need to change here
matrix_write_ln(matrix, read_layer_state());
matrix_write_ln(matrix, read_keylog());
matrix_write_ln(matrix, read_keylogs());
matrix_write(matrix, read_layer_state());
matrix_write(matrix, "\n");
matrix_write(matrix, read_keylog());
matrix_write(matrix, "\n");
matrix_write(matrix, read_keylogs());
matrix_write(matrix, "\n");
} else {
matrix_write(matrix, read_logo());
}
@ -222,4 +223,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}

View file

@ -9,3 +9,6 @@ SRC += ./lib/glcdfont.c \
./lib/layer_state_reader.c \
./lib/logo_reader.c \
./lib/keylogger.c \
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c

View file

@ -16,7 +16,6 @@ extern bool isScrollMode;
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
enum layer_names {
_QWERTY,

View file

@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS
#define SSD1306OLED
#define USE_SSD_I2C
#define USE_SERIAL_PD2

View file

@ -7,8 +7,6 @@
extern keymap_config_t keymap_config;
extern uint8_t is_master;
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2

View file

@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
@ -29,3 +29,6 @@ SRC += ./lib/glcdfont.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
VPATH += keyboards/crkbd/lib
LIB_SRC += ssd1306.c i2c.c

View file

@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include <stdio.h>
enum layer_names {
_DVORAK,
@ -101,7 +102,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_master) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
@ -187,7 +188,7 @@ void oled_render_logo(void) {
}
void oled_task_user(void) {
if (is_master) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {