* 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 |