* add like jis(iso) layout keymap for crkbd * Modified code by review.pull/3591/head
@ -0,0 +1,49 @@ | |||||
/* | |||||
This is the c configuration file for the keymap | |||||
Copyright 2012 Jun Wako <wakojun@gmail.com> | |||||
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 <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#pragma once | |||||
/* Use I2C or Serial */ | |||||
#define USE_I2C | |||||
#define USE_SERIAL | |||||
//#define USE_MATRIX_I2C | |||||
/* Select hand configuration */ | |||||
#define MASTER_LEFT | |||||
// #define MASTER_RIGHT | |||||
// #define EE_HANDS | |||||
#define SSD1306OLED | |||||
#define USE_SERIAL_PD2 | |||||
#define PREVENT_STUCK_MODIFIERS | |||||
#define TAPPING_FORCE_HOLD | |||||
#define TAPPING_TERM 150 | |||||
#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 |
@ -0,0 +1,244 @@ | |||||
// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. | |||||
// See gfxfont.h for newer custom bitmap font info. | |||||
#ifndef FONT5X7_H | |||||
#define FONT5X7_H | |||||
#ifdef __AVR__ | |||||
#include <avr/io.h> | |||||
#include <avr/pgmspace.h> | |||||
#elif defined(ESP8266) | |||||
#include <pgmspace.h> | |||||
#else | |||||
#define PROGMEM | |||||
#endif | |||||
// Standard ASCII 5x7 font | |||||
static 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, 0xA4, 0xA4, 0x9C, 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, | |||||
0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, | |||||
0x18, 0x24, 0x24, 0x18, 0xFC, 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, 0x0E, 0x3F, 0xFF, 0xFF, | |||||
0xFF, 0xFF, 0xFE, 0xE0, 0x80, 0x00, | |||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0xBE, | |||||
0x7F, 0xFF, 0xFF, 0xFE, 0xFE, 0xF0, | |||||
0xE0, 0xC0, 0x80, 0x00, 0x0E, 0xEF, | |||||
0xDF, 0xDE, 0xBE, 0x3C, 0x38, 0x70, | |||||
0xE0, 0xDD, 0xBB, 0x7B, 0x07, 0x0E, | |||||
0x0E, 0x0C, 0x98, 0xF0, 0xE0, 0xF0, | |||||
0xF0, 0xF8, 0x78, 0x3C, 0x1C, 0x1E, | |||||
0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, | |||||
0x1F, 0xFE, 0xFE, 0xF8, 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, | |||||
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, 0x00, 0x00, 0x00, 0x01, 0x03, | |||||
0x0F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFE, | |||||
0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x7F, | |||||
0xFF, 0xFE, 0xFD, 0xFB, 0x1B, 0x07, | |||||
0x07, 0x0F, 0x1F, 0x1F, 0x1E, 0x1D, | |||||
0x0B, 0x07, 0x01, 0x00, 0x00, 0x00, | |||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, | |||||
0xF8, 0xFE, 0xFF, 0xFF, 0x1F, 0x07, | |||||
0x01, 0x01, 0x01, 0x03, 0x06, 0x06, | |||||
0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x0E, | |||||
0x07, 0x83, 0xC1, 0xE0, 0x70, 0x30, | |||||
0x18, 0x1C, 0x7C, 0xCC, 0x8C, 0xDC, | |||||
0xF8, 0xC0, 0xE0, 0xE0, 0x70, 0xB8, | |||||
0xF0, 0x60, 0x00, 0x00, 0x80, 0xC0, | |||||
0xE0, 0xF0, 0x70, 0xF8, 0xFC, 0xFC, | |||||
0x3C, 0x30, 0x38, 0xF8, 0xF8, 0xF8, | |||||
0x78, 0x00, 0x80, 0x80, 0xC0, 0xE0, | |||||
0x70, 0x38, 0x38, 0x9C, 0xDC, 0xFC, | |||||
0x7C, 0x38, 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, | |||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||||
0x00, 0x00, 0x00, 0x01, 0x03, 0x07, | |||||
0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, | |||||
0x7E, 0x7D, 0x3B, 0x17, 0x00, 0x00, | |||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, | |||||
0x0F, 0x1F, 0x3F, 0x3F, 0x7E, 0x7C, | |||||
0x78, 0x70, 0x70, 0x70, 0x70, 0x70, | |||||
0x70, 0x78, 0x38, 0x18, 0x1C, 0x0E, | |||||
0x07, 0x0F, 0x1F, 0x3F, 0x3C, 0x38, | |||||
0x38, 0x18, 0x0C, 0x06, 0x03, 0x01, | |||||
0x01, 0x01, 0x01, 0x0E, 0x1F, 0x1F, | |||||
0x1C, 0x1C, 0x1E, 0x0F, 0x0F, 0x03, | |||||
0x1D, 0x0E, 0x07, 0x03, 0x01, 0x00, | |||||
0x00, 0x0E, 0x1F, 0x1F, 0x1D, 0x1E, | |||||
0x0F, 0x07, 0x03, 0x03, 0x0F, 0x1F, | |||||
0x1F, 0x19, 0x19, 0x19, 0x19, 0x0C, | |||||
0x0C, 0x04, 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, | |||||
}; | |||||
#endif // FONT5X7_H |
@ -0,0 +1,229 @@ | |||||
#include QMK_KEYBOARD_H | |||||
#include "bootloader.h" | |||||
#ifdef PROTOCOL_LUFA | |||||
#include "lufa.h" | |||||
#include "split_util.h" | |||||
#endif | |||||
#ifdef SSD1306OLED | |||||
#include "ssd1306.h" | |||||
#endif | |||||
#include "../lib/mode_icon_reader.c" | |||||
#include "../lib/layer_state_reader.c" | |||||
#include "../lib/host_led_state_reader.c" | |||||
#include "../lib/logo_reader.c" | |||||
#include "../lib/keylogger.c" | |||||
#include "../lib/timelogger.c" | |||||
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; | |||||
// 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. | |||||
#define _QWERTY 0 | |||||
#define _LOWER 3 | |||||
#define _RAISE 4 | |||||
#define _ADJUST 16 | |||||
enum custom_keycodes { | |||||
LOWER = SAFE_RANGE, | |||||
RAISE, | |||||
ADJUST, | |||||
RGBRST | |||||
}; | |||||
#define KC______ KC_TRNS | |||||
#define KC_XXXXX KC_NO | |||||
#define KC_KANJI KC_GRV | |||||
#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_KNRM AG_NORM | |||||
#define KC_KSWP AG_SWAP | |||||
#define KC_GUAP LALT_T(KC_APP) | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[_QWERTY] = LAYOUT_kc( \ | |||||
//,-----------------------------------------. ,-----------------------------------------. | |||||
ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
LSFT, A, S, D, F, G, H, J, K, L, UP, ENT,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
LCTRL, Z, X, C, V, B, N, M, COMM, LEFT, DOWN, RGHT,\ | |||||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||||
LGUI, LOWER, BSPC, SPC, RAISE, GUAP \ | |||||
//`--------------------' `--------------------' | |||||
), | |||||
[_LOWER] = LAYOUT_kc( \ | |||||
//,-----------------------------------------. ,-----------------------------------------. | |||||
TAB, F1, F2, F3, F4, F5, XXXXX, MINS, EQL, JYEN, LBRC, RBRC,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
_____, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, SCLN, QUOT, BSLS,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
_____, F11, F12, XXXXX, KANJI, ENT, XXXXX, XXXXX, COMM, DOT, SLSH, RO,\ | |||||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||||
_____, _____, DEL, XXXXX, _____, APP \ | |||||
//`--------------------' `--------------------' | |||||
), | |||||
[_RAISE] = LAYOUT_kc( \ | |||||
//,-----------------------------------------. ,-----------------------------------------. | |||||
_____, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, XXXXX,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
_____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 4, 5, 6, QUOT, XXXXX,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
_____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 0, 1, 2, 3, DOT, XXXXX,\ | |||||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||||
_____, _____, XXXXX, XXXXX, _____, LALT \ | |||||
//`--------------------' `--------------------' | |||||
), | |||||
[_ADJUST] = LAYOUT_kc( \ | |||||
//,-----------------------------------------. ,-----------------------------------------. | |||||
RST, LRST, KNRM, KSWP, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, PGUP, XXXXX,\ | |||||
//|------+------+------+------+------+------| |------+------+------+------+------+------| | |||||
LSMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, HOME, PGDN, END,\ | |||||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| | |||||
_____, _____, XXXXX, XXXXX, _____, XXXXX \ | |||||
//`--------------------' `--------------------' | |||||
) | |||||
}; | |||||
int RGB_current_mode; | |||||
// Setting ADJUST layer RGB back to default | |||||
inline void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { | |||||
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { | |||||
layer_on(layer3); | |||||
} else { | |||||
layer_off(layer3); | |||||
} | |||||
} | |||||
void matrix_init_user(void) { | |||||
#ifdef RGBLIGHT_ENABLE | |||||
RGB_current_mode = rgblight_config.mode; | |||||
#endif | |||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h | |||||
#ifdef SSD1306OLED | |||||
iota_gfx_init(!has_usb()); // turns on the display | |||||
#endif | |||||
} | |||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h | |||||
#ifdef SSD1306OLED | |||||
void matrix_scan_user(void) { | |||||
iota_gfx_task(); | |||||
} | |||||
inline void matrix_render_user(struct CharacterMatrix *matrix) { | |||||
if (is_master) { | |||||
matrix_write_ln(matrix, read_layer_state()); | |||||
matrix_write_ln(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()); | |||||
//matrix_write_ln(matrix, read_timelog()); | |||||
} else { | |||||
matrix_write(matrix, read_logo()); | |||||
} | |||||
} | |||||
inline 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); | |||||
matrix_render_user(&matrix); | |||||
matrix_update(&display, &matrix); | |||||
} | |||||
#endif | |||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||
#ifdef SSD1306OLED | |||||
if (record->event.pressed) { | |||||
set_keylog(keycode, record); | |||||
set_timelog(); | |||||
} | |||||
#endif | |||||
switch (keycode) { | |||||
case LOWER: | |||||
if (record->event.pressed) { | |||||
layer_on(_LOWER); | |||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||||
} else { | |||||
layer_off(_LOWER); | |||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||||
} | |||||
break; | |||||
case RAISE: | |||||
if (record->event.pressed) { | |||||
layer_on(_RAISE); | |||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||||
} else { | |||||
layer_off(_RAISE); | |||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); | |||||
} | |||||
break; | |||||
case ADJUST: | |||||
if (record->event.pressed) { | |||||
layer_on(_ADJUST); | |||||
} else { | |||||
layer_off(_ADJUST); | |||||
} | |||||
break; | |||||
#ifdef RGBLIGHT_ENABLE | |||||
case RGB_MOD: | |||||
if (record->event.pressed) { | |||||
rgblight_mode(RGB_current_mode); | |||||
rgblight_step(); | |||||
RGB_current_mode = rgblight_config.mode; | |||||
} | |||||
break; | |||||
case RGBRST: | |||||
if (record->event.pressed) { | |||||
eeconfig_update_rgblight_default(); | |||||
rgblight_enable(); | |||||
RGB_current_mode = rgblight_config.mode; | |||||
} | |||||
break; | |||||
#endif | |||||
default: | |||||
return true; | |||||
} | |||||
return false; | |||||
} |
@ -0,0 +1,21 @@ | |||||
# Build Options | |||||
# change to "no" to disable the options, or define them in the Makefile in | |||||
# the appropriate keymap folder that will get included automatically | |||||
# | |||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700) | |||||
EXTRAKEY_ENABLE = no # Audio control and System control(+450) | |||||
CONSOLE_ENABLE = no # Console for debug(+400) | |||||
COMMAND_ENABLE = no # Commands for debug and configuration | |||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||||
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. Do not enable this with audio at the same time. | |||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing | |||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |