diff --git a/keyboards/crkbd/keymaps/rpbaptist/config.h b/keyboards/crkbd/keymaps/rpbaptist/config.h new file mode 100644 index 00000000000..cbbc12f16a3 --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/config.h @@ -0,0 +1,73 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define SSD1306OLED + +#define USE_SERIAL_PD2 + +#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO + +#define FORCE_NKRO + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 16 +#define RGBLIGHT_VAL_STEP 16 + +#define TAPPING_TERM 170 +// #define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +#define TAPPING_TOGGLE 2 + +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_MAX_SPEED 6 +#define MOUSEKEY_TIME_TO_MAX 32 +#define MOUSEKEY_WHEEL_MAX_SPEED 4 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 + +#define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont.c" + +#define LCPO_KEYS KC_LCTL, KC_RSFT, KC_COMM +#define RCPC_KEYS KC_RCTL, KC_RSFT, KC_DOT + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#ifndef NO_DEBUG +#define NO_DEBUG +#endif // !NO_DEBUG +#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE) +#define NO_PRINT +#endif // !NO_PRINT diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c new file mode 100644 index 00000000000..044c16d9c16 --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/glcdfont.c @@ -0,0 +1,240 @@ +#pragma once + +#ifdef __AVR__ + #include + #include +#elif defined(ESP8266) + #include +#else + #define PROGMEM +#endif + +// Helidox 8x6 font with QMK Firmware Logo +// Online editor: http://teripom.x0.com/ + +const unsigned char font[] PROGMEM = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, +0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, +0x38, 0x1C, 0x0C, 0x06, 0x03, 0x03, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x03, 0x03, 0x82, 0x86, 0xCC, 0xF8, +0xF0, 0xF0, 0x38, 0x1C, 0x0C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, +0xF8, 0x0C, 0x04, 0xC6, 0xA2, 0xB3, +0x9F, 0x87, 0x01, 0x01, 0x1F, 0x66, +0x66, 0x44, 0x4C, 0x58, 0x70, 0xE0, +0x80, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, +0xE0, 0x78, 0x18, 0x8C, 0xC6, 0xE6, +0xE3, 0xE3, 0xC3, 0x83, 0x03, 0x03, +0x73, 0x76, 0x76, 0x0C, 0x18, 0xF8, +0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, +0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, +0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, +0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, +0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, +0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, +0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, +0xDE, 0xD7, 0xDC, 0x00, 0xC0, 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, 0x40, 0x7F, 0xF3, +0x60, 0x20, 0x30, 0x30, 0x38, 0x18, +0x9C, 0xCC, 0x6C, 0x6E, 0x3E, 0x3E, +0x1F, 0x0F, 0x0F, 0x03, 0x03, 0x01, +0xC0, 0xFF, 0x3E, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0xC1, 0x00, +0x1D, 0x67, 0xC0, 0x80, 0x01, 0x00, +0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, +0x0C, 0x1A, 0x32, 0xC2, 0x01, 0xC1, +0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, +0x80, 0x00, 0x00, 0xC3, 0xC7, 0xC7, +0x8F, 0x0F, 0x07, 0x03, 0x80, 0xC0, +0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x07, +0x0F, 0xFF, 0x7F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, +0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, +0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, +0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, +0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, +0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, +0x0F, 0x7F, 0x0F, 0x00, 0x03, 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, 0x01, 0x00, 0x40, 0x60, 0x31, +0x3B, 0x1E, 0x0C, 0x1E, 0x36, 0x23, +0x61, 0x60, 0x60, 0x60, 0x60, 0x60, +0x60, 0x30, 0x1C, 0x3E, 0x3E, 0x3F, +0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x07, +0x0C, 0x18, 0x10, 0x33, 0x3E, 0x38, +0x6E, 0x67, 0x60, 0x60, 0x60, 0x20, +0x30, 0x18, 0x08, 0x0F, 0x06, 0x03, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x03, 0x06, 0x0C, 0x19, 0x31, 0x21, +0x60, 0x60, 0x60, 0x60, 0x61, 0x63, +0x67, 0x67, 0x33, 0x39, 0x18, 0x0E, +0x07, 0x03, 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, 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, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/keymap.c b/keyboards/crkbd/keymaps/rpbaptist/keymap.c new file mode 100644 index 00000000000..e29fab5d57c --- /dev/null +++ b/keyboards/crkbd/keymaps/rpbaptist/keymap.c @@ -0,0 +1,274 @@ +#include QMK_KEYBOARD_H +#include "bootloader.h" +#ifdef PROTOCOL_LUFA + #include "lufa.h" + #include "split_util.h" +#endif +#ifdef SSD1306OLED + #include "ssd1306.h" +#endif + +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 _COLEMAKDHM 0 +#define _QWERTY 1 +#define _GAME 3 +#define _GAME_EXT 4 +#define _FN 7 +#define _SYM 8 +#define _UTIL 9 +#define _NAV 10 +#define _TEMPLATE 16 + +#define KC_CLMK DF(0) +#define KC_QWERT DF(1) +#define KC_GAME DF(3) + +// #define KC_T_SYM TT(8) +// #define KC_S_SYM MO(8) + +#define KC_T_NAV TT(10) +#define KC_S_NAV MO(10) + +#define KC_NV_ENT LT(_NAV, KC_ENT) +#define KC_FN_ESC LT(_FN, KC_ESC) +#define KC_UT_TAB LT(_UTIL, KC_TAB) +#define KC_SYMSPC LT(_SYM, KC_SPC) + +#define KC_GMSPC LT(_GAME_EXT, KC_SPC) + +#define KC_LCTLT LCTL_T(KC_LT) + +#define KC_CTRGUI LCTL_T(KC_LGUI) +#define KC_CTLENT RCTL_T(KC_ENT) + +#define KC_ALTBR LALT_T(KC_LBRACKET) +#define KC_GUIBR RGUI_T(KC_RBRACKET) + +// #define KC_ALSPC LALT_T(KC_SPC) +// #define KC_ALTSF LALT(KC_LSFT) + +#define KC_TABFWD LCTL(KC_TAB) +#define KC_TABBCK LCTL(LSFT(KC_TAB)) + +#define KC______ KC_TRNS +#define KC_XXXXX KC_NO +#define KC_LOWER LOWER +#define KC_RAISE RAISE +#define KC_RST RESET +#define KC_LRST RGBRST +#define KC_LTOG RGB_TOG +#define KC_LHUI RGB_HUI +#define KC_LHUD RGB_HUD +#define KC_LSAI RGB_SAI +#define KC_LSAD RGB_SAD +#define KC_LVAI RGB_VAI +#define KC_LVAD RGB_VAD +#define KC_LSMOD RGB_SMOD +#define KC_LFMOD RGB_MOD +#define KC_LRMOD RGB_RMOD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_COLEMAKDHM] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + FN_ESC, Q, W, F, P, B, J, L, U, Y, SCLN, BSPC,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + UT_TAB, A, R, S, T, G, M, N, E, I, O, QUOT,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + CTRGUI, Z, X, C, D, V, K, H, COMM, DOT, SLSH, CTLENT,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + ALTBR, LSPO, SYMSPC, T_NAV, RSPC, GUIBR \ + //`--------------------' `--------------------' + ), + + [_QWERTY] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + _____, _____, _____, E, R, T, Y, U, I, O, P, _____,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, _____, S, D, F, _____, H, J, K, L, SCLN, _____,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, _____, _____, _____, V, B, _____, N, M, _____, _____, _____,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + _____, _____, _____, _____, _____, _____ \ + //`--------------------' `--------------------' + ), + + [_GAME] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + TAB, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LCTL, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + LALT, LSFT, GMSPC, _____, RSFT, RGUI \ + //`--------------------' `--------------------' + ), + + [_GAME_EXT] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + GRV, MINS, EQL, _____, LBRC, RBRC, VOLU, KP_7, KP_8, KP_9, PSLS, PAST,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + 1, 2, _____, _____, _____, BSLS, VOLD, KP_4, KP_5, KP_6, PMNS, PPLS,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + 3, 4, 5, 6, 7, 8, MUTE, KP_1, KP_2, KP_3, PEQL, PENT,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + _____, _____, _____, KP_0, PDOT, BSPC \ + //`--------------------' `--------------------' + ), + + [_SYM] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSLS,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + TILD, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, MINS, PLUS, PIPE,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + LCPO, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, EQL, RCPC,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + _____, _____, _____, LGUI, RALT, RGUI \ + //`--------------------' `--------------------' + ), + + [_NAV] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + GRV, WH_U,TABBCK, MS_U,TABFWD, BTN2, PGUP, HOME, UP, END, XXXXX, DEL,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + TAB, WH_D, MS_L, MS_D, MS_R, BTN1, PGDN, LEFT, DOWN, RGHT, XXXXX, XXXXX,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, XXXXX, WH_L, XXXXX, WH_R, XXXXX, XXXXX, ACL0, ACL1, ACL2, XXXXX, _____,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+-----+-------| + _____, _____, SPC, S_NAV, _____, RGUI \ + //`--------------------' `--------------------' + ), + + [_FN] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + _____, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + RST, XXXXX, XXXXX, XXXXX, SLEP, WAKE, LTOG, LFMOD, LHUI, LSAI, LVAI, F12,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, CLMK, GAME, QWERT, XXXXX, XXXXX, XXXXX, LRMOD, LHUD, LSAD, LVAD, _____,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + _____, _____, SPC, XXXXX, _____, _____ \ + //`--------------------' `--------------------' + ), + + [_UTIL] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + ESC, XXXXX, MSTP, VOLU, MNXT, PAUS, NLCK, KP_7, KP_8, KP_9, PSLS, PAST,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, XXXXX, MPRV, VOLD, MPLY, INS, CAPS, KP_4, KP_5, KP_6, PMNS, PPLS,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, XXXXX, XXXXX, MUTE, XXXXX, PSCR, SLCK, KP_1, KP_2, KP_3, PEQL, PENT,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + _____, _____, SPC, KP_0, PDOT, BSPC \ + //`--------------------' `--------------------' + ), + + [_TEMPLATE] = LAYOUT_kc( \ + //,-----------------------------------------. ,-----------------------------------------. + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,\ + //|------+------+------+------+------+------| |------+------+------+------+------+------| + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,\ + //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + _____, _____, _____, _____, _____, _____ \ + //`--------------------' `--------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_master) { + return OLED_ROTATION_270; + } else { + return OLED_ROTATION_180; + } +} + +void render_crkbd_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 render_status(void) { + // oled_write_P(PSTR("Layout: "), false); + switch (biton32(default_layer_state)) { + case _COLEMAKDHM: + oled_write_P(PSTR("ORBIT"), false); + break; + case _GAME: + oled_write_P(PSTR("GAME "), false); + break; + case _QWERTY: + oled_write_P(PSTR("DELAY"), false); + break; + } + + oled_write_P(PSTR("\n"), false); + + switch (biton32(layer_state)) { + case 0: + oled_write_P(PSTR(" "), false); + break; + case _FN: + oled_write_P(PSTR("Abort"), false); + break; + case _SYM: + oled_write_P(PSTR("Comm "), false); + break; + case _UTIL: + oled_write_P(PSTR("Stage"), false); + break; + case _NAV: + oled_write_P(PSTR("Gyro "), false); + break; + case _GAME_EXT: + oled_write_P(PSTR("Ext "), false); + break; + default: + oled_write_P(PSTR("Unkn "), false); + break; + } + oled_write_P(PSTR("\n"), false); + + uint8_t modifiers = get_mods(); + + oled_write_P( (modifiers & MOD_MASK_CTRL) ? PSTR("PROG ") : PSTR(" "), false); + oled_write_P( (modifiers & MOD_MASK_SHIFT) ? PSTR("FUEL ") : PSTR(" "), false); + oled_write_P( (modifiers & MOD_MASK_ALT) ? PSTR("AUX ") : PSTR(" "), false); + oled_write_P( (modifiers & MOD_MASK_GUI) ? PSTR("DOCK ") : PSTR(" "), false); + + oled_write_P(PSTR("\n"), false); + + uint8_t led_usb_state = host_keyboard_leds(); + oled_write_P(PSTR("Mode:\n"), false); + oled_write_P(led_usb_state & (1<