1
0
Fork 0

[Keymap] Update to Drashna Keymaps (#5594)

* Start to standardize macro timer

* Update Fractal layout

Specifically, limit the RGB Lighting, since it's too many for the power, and only have the KITT annimation on the front

* Update Iris keymap to use I2C for transport

* Remove TAP_CODE_DELAY from keyboard in favor of global setting

* Remove Woodpad

Since it\'s no longer in my possession

* Only enable LTO on AVR boards

* Run matrix_scans while doing startup light

* Run matrix_scan to get split keyboard code synced properly

* Fix rgb mode

* Remove custom debouncing settings

* Make RGB Light Startup Animation optional

* Fix opt def

* Remove extra tap code delay value

* Fix references to keebio boards

* Add support for LP Iris keyboard

* Add backlight code

* Make startup animation optional

* Update gitlab ci script

* Remove port declaration

* Revert avrgcc changes to gitlab ci file

* Don't re-set mods

* Remove MACRO_TIMER define

* Add custom name for crkbd

* Add name for Prime M pad

* Add names for ortho 4x12 boards

* Add some additional handling for rgb init

* Change thumb clusters on ergodox

* Switch Orthodox to I2C

* Fix Space in ergodox keymap

* Use OSL for ergodox layout

* Ugh, can't find a good layout

* Fix typo

* Fix up animation startup

* Cries in AVR

* Fix makefiles for ergodox ez boards

* Add support for "secret songs" in my userspace

* Reset debounce to 5ms for Ergodox EZ

* Fix gitlab CI yaml file

* More crying in AVR

* Cannot use rgb light and rgb matrix at the same time due to the WS2812 rgb matrix PR until the "Coexistance" PR is merged

* Update ODox for split common and i2c

* Add split config

* Impement Split code

* Add support for xscorpion OLED code

* Add OLED display config

* Fix OLED screen font

* Get OLED set up in vertical mode

* Remove old OLED code

* add per key support for crkbd

* Fix split changes

* RGB Tweeaks

* More OLED tweaks

* Fix rotation stuff

* Fix more OLED stuff

* Remove custom Debounce from Ergodox layout since it's no longer needed
This commit is contained in:
Drashna Jaelre 2019-04-22 11:55:55 -07:00 committed by MechMerlin
parent 6d73fe1277
commit a2cec0594b
38 changed files with 569 additions and 300 deletions

View file

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT // #define MASTER_RIGHT
#define EE_HANDS #define EE_HANDS
#define SSD1306OLED // #define SSD1306OLED
#define USE_SERIAL_PD2 #define USE_SERIAL_PD2
@ -48,3 +48,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define B6_AUDIO #define B6_AUDIO
// #define NO_MUSIC_MODE // #define NO_MUSIC_MODE
#endif #endif
#undef PRODUCT
#define PRODUCT Drashna Hacked Corne Keyboard
#define OLED_FONT_H "keyboards/crkbd/keymaps/drashna/glcdfont.c"
// #define OLED_FONT_WIDTH 5
// #define OLED_FONT_HEIGHT 7
#define TAPPING_TERM_PER_KEY

View file

@ -0,0 +1,240 @@
#pragma once
#ifdef __AVR__
#include <avr/io.h>
#include <avr/pgmspace.h>
#elif defined(ESP8266)
#include <pgmspace.h>
#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, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
0xE0, 0xE0, 0xC0, 0x80, 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, 0xF8, 0xFC, 0xFE,
0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 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,
0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F,
0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
0x07, 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, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

View file

@ -7,6 +7,9 @@
#ifdef SSD1306OLED #ifdef SSD1306OLED
#include "ssd1306.h" #include "ssd1306.h"
#endif #endif
#ifdef OLED_DRIVER_ENABLE
#include "oled_driver.h"
#endif
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;
extern uint8_t is_master; extern uint8_t is_master;
@ -288,3 +291,123 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
} }
#endif #endif
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_master) {
return OLED_ROTATION_270;
} else {
return rotation;
}
}
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("Layer"), false);
switch (biton32(layer_state)) {
case 0:
oled_write_P(PSTR("Base "), false);
break;
case _RAISE:
oled_write_P(PSTR("Raise"), false);
break;
case _LOWER:
oled_write_P(PSTR("Lower"), false);
break;
case _ADJUST:
oled_write_P(PSTR("Adjst"), false);
break;
default:
oled_write_P(PSTR("Unkn "), false);
break;
}
oled_write_P(PSTR("Lyout"), false);
switch (biton32(default_layer_state)) {
case _QWERTY:
oled_write_P(PSTR("QWRTY"), false);
break;
case _COLEMAK:
oled_write_P(PSTR("COLMK"), false);
break;
case _DVORAK:
oled_write_P(PSTR("DVRAK"), false);
break;
case _WORKMAN:
oled_write_P(PSTR("WRKMN"), false);
break;
case _NORMAN:
oled_write_P(PSTR("NORMN"), false);
break;
case _MALTRON:
oled_write_P(PSTR("MLTRN"), false);
break;
case _EUCALYN:
oled_write_P(PSTR("ECLYN"), false);
break;
case _CARPLAX:
oled_write_P(PSTR("CRPLX"), false);
break;
}
uint8_t modifiers = get_mods();
uint8_t one_shot = get_oneshot_mods();
oled_write_P(PSTR("Mods:"), false);
oled_write_P( (modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL ) ? PSTR(" CTL ") : PSTR(" "), false);
oled_write_P( (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI ) ? PSTR(" GUI ") : PSTR(" "), false);
oled_write_P( (modifiers & MOD_MASK_ALT || one_shot & MOD_MASK_ALT ) ? PSTR(" ALT ") : PSTR(" "), false);
oled_write_P( (modifiers & MOD_MASK_SHIFT || one_shot & MOD_MASK_SHIFT) ? PSTR(" SFT ") : PSTR(" "), false);
oled_write_P(PSTR("BTMGK"), false);
static const char PROGMEM mode_logo[4][4] = {
{0x95,0x96,0x0a,0},
{0xb5,0xb6,0x0a,0},
{0x97,0x98,0x0a,0},
{0xb7,0xb8,0x0a,0} };
if (keymap_config.swap_lalt_lgui != false) {
oled_write_P(mode_logo[0], false);
oled_write_P(mode_logo[1], false);
} else {
oled_write_P(mode_logo[2], false);
oled_write_P(mode_logo[3], false);
}
uint8_t led_usb_state = host_keyboard_leds();
oled_write_P(PSTR("Lock:"), false);
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR(" NUM ") : PSTR(" "), false);
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR(" CAPS") : PSTR(" "), false);
oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR(" SCRL") : PSTR(" "), false);
}
void oled_task_user(void) {
if (is_master) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_crkbd_logo();
oled_scroll_left(); // Turns on scrolling
}
}
#endif
uint16_t get_tapping_term(uint16_t keycode) {
switch (keycode) {
case ALT_T(KC_A):
return TAPPING_TERM + 100;
default:
return TAPPING_TERM;
}
}

View file

@ -16,18 +16,11 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 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 SWAP_HANDS_ENABLE = no # Enable one-hand typing
RGBLIGHT_STARTUP_ANIMATION = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu
# If you want to change the display of OLED, you need to change here OLED_DRIVER_ENABLE = yes
SRC += ./lib/glcdfont.c \
./lib/logo_reader.c \
# ./lib/rgb_state_reader.c \
# ./lib/keylogger.c \
# ./lib/host_led_state_reader.c \
# ./lib/mode_icon_reader.c \
# ./lib/layer_state_reader.c \
# ./lib/timelogger.c \

View file

@ -1,25 +0,0 @@
Overview
========
This is my personal Numpad (Woodpad) configuration, and my daily driver.
Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
How to build
------------
make handwired/woodpad:drashna:avrdude
Layers
------
* NUMLOCK: Num pad, locked to NUM LOCK enabled.
* NAV: Navigation codes without needing to enable numlock.
* DIABLO: This contains a Diablo 3 layout, that requires much less reaching or shifting. If Tap Dance is enabled, then it has a "spam" feature. See Userspace for details.
* MACROS: This layer contains a bunch of macros for spamming chat, with a toggle on what key to open up chat with.
* MEDIA: Media and RGB commands
All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
Woodpad Specific Code
---------------------
Aside from my userspace code, this includes LED indications for numlock and macro mode. It also forces NUMLOCK to be enabled.

View file

@ -1,45 +0,0 @@
/* Copyright 2017 REPLACE_WITH_YOUR_NAME
*
* 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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include QMK_KEYBOARD_CONFIG_H
#if (defined(TAP_DANCE_ENABLE) && !defined(TAPPING_TERM))
#define TAPPING_TERM 200
#endif // TAP_DANCE_ENABLE
#define B5_AUDIO
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 4
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#define RGBLIGHT_SLEEP
#endif // RGBLIGHT_ENABLE
#define FORCE_NKRO
#endif

View file

@ -1,95 +0,0 @@
/* Copyright 2017 REPLACE_WITH_YOUR_NAME
*
* 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
#include "drashna.h"
// 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.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_NUMLOCK] = KEYMAP( /* Base */
TG(_NAV), TG(_DIABLO), TG(_MACROS), KC_PSLS,\
KC_P7, KC_P8, KC_P9, KC_PAST, \
KC_P4, KC_P5, KC_P6, KC_PMNS, \
KC_P1, KC_P2, KC_P3, KC_PPLS, \
LT(_MEDIA,KC_P0), KC_PDOT, KC_COLN, KC_PENT \
),
[_NAV] = KEYMAP( /* Base */
_______, _______, _______, _______,\
KC_HOME, KC_UP, KC_PGUP, _______, \
KC_LEFT, XXXXXXX, KC_RIGHT, _______, \
KC_END, KC_DOWN, KC_PGDN, _______, \
KC_INS, KC_DEL, _______, _______ \
),
[_DIABLO] = KEYMAP( /* Base */
KC_ESC, _______, XXXXXXX, _______,\
KC_S, KC_I, KC_F, KC_M, \
KC_1, KC_2, KC_3, KC_4, \
KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, \
XXXXXXX, KC_DIABLO_CLEAR, KC_Q, SFT_T(KC_SPACE) \
),
[_MACROS] = KEYMAP( /* Base */
KC_OVERWATCH, XXXXXXX, _______, XXXXXXX,\
KC_JUSTGAME, XXXXXXX, XXXXXXX, KC_C9, \
XXXXXXX, XXXXXXX, KC_AIM, KC_GGEZ, \
KC_SYMM, KC_TORB, XXXXXXX, KC_GOODGAME, \
KC_SALT, KC_MORESALT, KC_SALTHARD, KC_GLHF \
),
[_MEDIA] = KEYMAP( /* Base */
KC_RESET, KC_MUTE, KC_VOLD, KC_VOLU,\
KC_MAKE, _______, RGB_HUI, RGB_HUD, \
KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, \
RGB_TOG, RGB_MOD, RGB_SAI, RGB_VAI, \
_______, KC_RGB_T, RGB_SAD, RGB_VAD \
),
};
void numlock_led_on(void) {
PORTF |= (1 << 7);
}
void numlock_led_off(void) {
PORTF &= ~(1 << 7);
}
void matrix_init_keymap(void) {
// set Numlock LED to output and low
DDRF |= (1 << 7);
PORTF &= ~(1 << 7);
}
void matrix_scan_keymap(void) {
numlock_led_off();
if ((is_overwatch && biton32(layer_state) == _MACROS) || (biton32(layer_state) == _NUMLOCK)) {
numlock_led_on();
}
// Run Diablo 3 macro checking code.
}
void led_set_keymap(uint8_t usb_led) {
if (!(usb_led & (1<<USB_LED_NUM_LOCK))) {
register_code(KC_NUMLOCK);
unregister_code(KC_NUMLOCK);
}
}

View file

@ -1,10 +0,0 @@
TAP_DANCE_ENABLE = yes
COMMAND_ENABLE = no # Commands for debug and configuration
RGBLIGHT_ENABLE = yes
MIDI_ENABLE = no
CONSOLE_ENABLE = no
NKRO_ENABLE = yes
MOUSEKEY_ENABLE = no
EXTRAFLAGS = -flto

View file

@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Use I2C or Serial, not both */ /* Use I2C or Serial, not both */
#define USE_SERIAL // #define USE_SERIAL
#undef USE_I2C #define USE_I2C
/* Select hand configuration */ /* Select hand configuration */
@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM #undef RGBLED_NUM
#define RGBLED_NUM 18 // Number of LEDs #define RGBLED_NUM 18 // Number of LEDs
#define RGBLED_SPLIT { 9, 9 }
#define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12 #define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12 #define RGBLIGHT_VAL_STEP 12
@ -55,7 +55,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define QMK_SPEAKER C6 #define QMK_SPEAKER C6
#undef PRODUCT #undef PRODUCT
#ifdef KEYBOARD_iris_rev2 #ifdef KEYBOARD_keebio_iris_rev2
#define PRODUCT Drashna Hacked Iris Rev.2 #define PRODUCT Drashna Hacked Iris Rev.2
#endif #endif

View file

@ -121,3 +121,14 @@ void matrix_init_keymap(void) {
writePinHigh(B0); writePinHigh(B0);
#endif #endif
} }
void keyboard_post_init_keymap(void) {
#if BACKLIGHT_ENABLE
backlight_enable();
backlight_level(5);
#ifdef BACKLIGHT_BREATHING
breathing_enable();
#endif
#endif
}

View file

@ -5,13 +5,14 @@ CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
TAP_DANCE_ENABLE = no TAP_DANCE_ENABLE = no
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = yes AUDIO_ENABLE = no
NKRO_ENABLE = yes NKRO_ENABLE = yes
BACKLIGHT_ENABLE = no BACKLIGHT_ENABLE = no
SWAP_HANDS_ENABLE = no SWAP_HANDS_ENABLE = no
INDICATOR_LIGHTS = yes INDICATOR_LIGHTS = no
MACROS_ENABLED = no MACROS_ENABLED = no
RGBLIGHT_TWINKLE = no RGBLIGHT_TWINKLE = no
RGBLIGHT_STARTUP_ANIMATION = yes
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu

View file

@ -0,0 +1,48 @@
/*
Copyright 2017 Danny Nguyen <danny@keeb.io>
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, not both */
#include "../drashna/config.h"
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM
#define RGBLED_NUM 16 // Number of LEDs
#undef RGBLED_SPLIT
#define RGBLED_SPLIT { 8, 8 }
#endif
#undef PRODUCT
#ifdef KEYBOARD_keebio_iris_rev2
#define PRODUCT Drashna Hacked Iris LP Rev.2 (Backlit)
#endif
#undef SHFT_LED1
#define SHFT_LED1 5
#undef SHFT_LED2
#define SHFT_LED2 10
#undef CTRL_LED1
#define CTRL_LED1 6
#undef CTRL_LED2
#define CTRL_LED2 9
#undef ALT_LED1
#define ALT_LED1 7
#undef GUI_LED1
#define GUI_LED1 8

View file

@ -0,0 +1 @@
// placeholder

View file

@ -0,0 +1,7 @@
USER_NAME := drashna
SRC += ../drashna/keymap.c
include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk
AUDIO_ENABLE = no
BACKLIGHT_ENABLE = yes

View file

@ -23,10 +23,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM #undef RGBLED_NUM
#define RGBLED_NUM 16 // Number of LEDs #define RGBLED_NUM 16 // Number of LEDs
#undef RGBLED_SPLIT
#define RGBLED_SPLIT { 8, 8 }
#endif #endif
#undef PRODUCT #undef PRODUCT
#ifdef KEYBOARD_iris_rev2 #ifdef KEYBOARD_keebio_iris_rev2
#define PRODUCT Drashna Hacked Iris Rev.2 (16 LED) #define PRODUCT Drashna Hacked Iris Rev.2 (16 LED)
#endif #endif

View file

@ -23,8 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Use I2C or Serial, not both */ /* Use I2C or Serial, not both */
#define USE_SERIAL // #define USE_SERIAL
#undef USE_I2C #define USE_I2C
/* Select hand configuration */ /* Select hand configuration */
@ -41,6 +41,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3 #define RGB_DI_PIN D3
#define RGBLED_NUM 16 // Number of LEDs #define RGBLED_NUM 16 // Number of LEDs
#define RGBLED_SPLIT { 8, 8 }
#define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12 #define RGBLIGHT_SAT_STEP 12

View file

@ -38,7 +38,7 @@ uint8_t last_osm;
) \ ) \
LAYOUT_wrapper( \ LAYOUT_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
KC_TAB, K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, OS_RGUI, K16, K17, K18, K19, K1A, KC_QUOT, \ KC_TAB, K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, CTL_T(K2A), KC_MRSF \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, CTL_T(K2A), KC_MRSF \
) )
#define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__) #define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__)

View file

@ -5,11 +5,13 @@ CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
TAP_DANCE_ENABLE = no TAP_DANCE_ENABLE = no
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = yes AUDIO_ENABLE = no
NKRO_ENABLE = yes NKRO_ENABLE = yes
INDICATOR_LIGHTS = yes INDICATOR_LIGHTS = yes
MACROS_ENABLED = no MACROS_ENABLED = no
RGBLIGHT_TWINKLE = no RGBLIGHT_TWINKLE = no
RGBLIGHT_STARTUP_ANIMATION = yes
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu

View file

@ -14,4 +14,3 @@
#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine #define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine
#undef DEBOUNCE #undef DEBOUNCE
#define DEBOUNCE 5

View file

@ -46,8 +46,8 @@ bool skip_leds = false;
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \
KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC(0x2E2E), \ KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC(0x2E2E), \
OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \ OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \
KC_HOME, KC_PGUP, \ KC_APP, KC_MENU, \
LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER) \ KC_SPC, LT(_LOWER, KC_BSPC), OS_LWR, OS_RSE, LT(_RAISE, KC_DEL), KC_ENT \
) )
#define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__) #define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
@ -270,8 +270,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = LAYOUT_ergodox_pretty_wrapper( [_LOWER] = LAYOUT_ergodox_pretty_wrapper(
KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11, KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
KC_TILD, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, _______, KC_TILD, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, KC_PIPE,
_______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_PIPE, _______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_DQUO,
_______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, KC_PSCR, _______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, KC_PSCR,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
_______, _______, _______, _______, _______, _______, _______, _______,
@ -281,8 +281,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_RAISE] = LAYOUT_ergodox_pretty_wrapper( [_RAISE] = LAYOUT_ergodox_pretty_wrapper(
KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11, KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
KC_GRV, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, _______, KC_GRV, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, KC_BSLS,
_______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_QUOT,
_______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, KC_PSCR, _______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, KC_PSCR,
_______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_SLCK, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_SLCK,
_______, _______, _______, _______, _______, _______, _______, _______,

View file

@ -14,3 +14,6 @@ UNICDOEMAP_ENABLE = no
MACROS_ENABLED = no MACROS_ENABLED = no
RGBLIGHT_TWINKLE = no RGBLIGHT_TWINKLE = no
INDICATOR_LIGHTS = no INDICATOR_LIGHTS = no
RGBLIGHT_STARTUP_ANIMATION = yes
DEBOUNCE_TYPE = eager_pk

View file

@ -5,17 +5,11 @@
#undef PRODUCT #undef PRODUCT
#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Glow #define PRODUCT DrashnaDox - Hacked ErgoDox EZ Glow
#undef DEBOUNCE
#define DEBOUNCE 5
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
// #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended #define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 // #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
// #define EECONFIG_RGB_MATRIX (uint32_t *)16 // #define EECONFIG_RGB_MATRIX (uint32_t *)16
#endif #endif
#undef DEBOUNCE
#define DEBOUNCE 1

View file

@ -1,7 +1,10 @@
USER_NAME := drashna USER_NAME := drashna
SRC += ../drashna/keymap.c
-include $(LAYOUT_KEYMAP_PATH)/../drashna/rules.mk CORRECTED_LAYOUT := $(LAYOUTS_REPO)/$(LAYOUT)/drashna
SRC += $(CORRECTED_LAYOUT)/keymap.c
-include $(CORRECTED_LAYOUT)/rules.mk
ifneq (,$(findstring ergodox_ez,$(KEYBOARD))) ifneq (,$(findstring ergodox_ez,$(KEYBOARD)))
RGBLIGHT_ENABLE = no RGBLIGHT_ENABLE = no

View file

@ -14,5 +14,7 @@
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#if defined(KEYBOARD_primekb_prime_m)
#define TAP_CODE_DELAY 10 #undef PRODUCT
#define PRODUCT Drashna Hacked Prime_M Macro Pad
#endif

View file

@ -7,3 +7,4 @@ INDICATOR_LIGHTS = no
RGBLIGHT_TWINKLE = yes RGBLIGHT_TWINKLE = yes
MACROS_ENABLED = no MACROS_ENABLED = no
MAKE_BOOTLOADER = yes MAKE_BOOTLOADER = yes
RGBLIGHT_STARTUP_ANIMATION = yes

View file

@ -36,6 +36,17 @@
#endif // KEYBOARD_planck_light #endif // KEYBOARD_planck_light
#if defined(KEYBOARD_planck)
#undef PRODUCT
#if defined(KEYBOARD_planck_light)
#define PRODUCT Drashna Hacked RGB Beacon (Planck Light)
#elif defined(KEYBOARD_planck_rev6)
#define PRODUCT Drashna Hacked Planck Rev6
#elif defined(KEYBOARD_planck_EZ)
#define PRODUCT Drashna Hacked Planck EZ
#endif
#endif
/* /*
* MIDI options * MIDI options
*/ */
@ -59,5 +70,3 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2 //#define MIDI_TONE_KEYCODE_OCTAVES 2
#define TAP_CODE_DELAY 10

View file

@ -139,10 +139,8 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
backlight_step(); backlight_step();
#endif #endif
PORTE &= ~(1<<6);
} else { } else {
unregister_code(KC_RSFT); unregister_code(KC_RSFT);
PORTE |= (1<<6);
} }
return false; return false;
break; break;

View file

@ -9,10 +9,12 @@ ifeq (,$(findstring planck/rev6,$(KEYBOARD))) # Make sure it's NOT the Planck Re
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes
INDICATOR_LIGHTS = yes INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
endif endif
ifneq (,$(findstring planck/light,$(KEYBOARD))) # Make sure it IS the Planck Light ifneq (,$(findstring planck/light,$(KEYBOARD))) # Make sure it IS the Planck Light
RGB_MATRIX_ENABLE = yes RGB_MATRIX_ENABLE = yes
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = no
RGBLIGHT_STARTUP_ANIMATION = no
endif endif
ifeq ($(strip $(PROTOCOL)), VUSB) ifeq ($(strip $(PROTOCOL)), VUSB)

View file

@ -13,4 +13,10 @@
#define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8
#undef RGBLIGHT_VAL_STEP #undef RGBLIGHT_VAL_STEP
#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 175
#define RGBLIGHT_SLEEP
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 3
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 14
#endif #endif

3
users/drashna/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
secrets.c
secrets.h
drashna_song_list.h

View file

@ -3,7 +3,7 @@ stages:
- build - build
- deploy - deploy
Tests: Preliminary Test:
stage: test stage: test
variables: variables:
GIT_SUBMODULE_STRATEGY: recursive GIT_SUBMODULE_STRATEGY: recursive
@ -12,12 +12,12 @@ Tests:
image: ubuntu:18.10 image: ubuntu:18.10
before_script: before_script:
- apt-get update -qy - apt-get update -qy
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi git libnewlib-arm-none-eabi gcc-avr unzip wget zip
- avr-gcc --version - avr-gcc --version
- uname -a - uname -a
script: script:
- make test:all - make test:all
- make planck/rev6:default - make planck/rev6:default planck/rev5:default
QMK Firmware Defaults: QMK Firmware Defaults:
stage: deploy stage: deploy
@ -47,29 +47,7 @@ Drashna Firmware:
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
- avr-gcc --version - avr-gcc --version
script: script:
- make iris/rev2:drashna iris/rev2:drashna_old ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna orthodox/rev1:drashna orthodox/rev3:drashna crkbd:drashna planck/light:drashna planck/rev6:drashna fractal:drashna - make keebio/iris/rev2:drashna keebio/iris/rev2:drashna_old ergodox_ez:drashna ergodox_ez:drashna_glow keebio/viterbi/rev1:drashna orthodox/rev1:drashna orthodox/rev3:drashna crkbd:drashna planck/light:drashna planck/rev6:drashna fractal:drashna primekb/prime_m:drashna -j16 --output-sync
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths:
- ./*.hex
- ./*.bin
expire_in: 1 month
Firmware Deploy:
stage: deploy
dependencies:
- Drashna Firmware
variables:
GIT_SUBMODULE_STRATEGY: recursive
tags:
- linux
image: ubuntu:18.10
before_script:
- apt-get update -qy
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
- avr-gcc --version
script:
- make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna planck/rev6:drashna fractal:drashna:production
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths: paths:

View file

@ -82,4 +82,4 @@
#define NO_ACTION_MACRO #define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION #define NO_ACTION_FUNCTION
#define MACRO_TIMER 5 #define TAP_CODE_DELAY 5

View file

@ -38,9 +38,9 @@ bool send_game_macro(const char *str, keyrecord_t *record, bool override) {
} }
clear_keyboard(); clear_keyboard();
tap_code(keycode); tap_code(keycode);
wait_ms(50); wait_ms(TAP_CODE_DELAY);
send_string_with_delay(str, MACRO_TIMER); send_string_with_delay(str, TAP_CODE_DELAY);
wait_ms(50); wait_ms(TAP_CODE_DELAY);
tap_code(KC_ENTER); tap_code(KC_ENTER);
} }
if (override) wait_ms(3000); if (override) wait_ms(3000);
@ -53,12 +53,10 @@ bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed) {
this_timer= timer_read(); this_timer= timer_read();
} else { } else {
if (timer_elapsed(this_timer) < TAPPING_TERM){ if (timer_elapsed(this_timer) < TAPPING_TERM){
register_code(code); tap_code(code);
unregister_code(code);
} else { } else {
register_code(mod_code); register_code(mod_code);
register_code(code); tap_code(code);
unregister_code(code);
unregister_code(mod_code); unregister_code(mod_code);
} }
} }
@ -70,12 +68,10 @@ bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t thi
this_timer= timer_read(); this_timer= timer_read();
} else { } else {
if (timer_elapsed(this_timer) < TAPPING_TERM){ if (timer_elapsed(this_timer) < TAPPING_TERM){
register_code(code); tap_code(code);
unregister_code(code);
} else { } else {
register_code(mod_code); register_code(mod_code);
register_code(code); tap_code(code);
unregister_code(code);
unregister_code(mod_code); unregister_code(mod_code);
} }
} }

View file

@ -27,7 +27,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
#include "rgb_stuff.h" #include "rgb_stuff.h"
#endif #endif
#if defined(AUDIO_ENABLE) && __GNUC__ > 7
#if __has_include("drashna_song_list.h")
#include "drashna_song_list.h"
#endif
#endif
/* Define layer names */ /* Define layer names */
enum userspace_layers { enum userspace_layers {

View file

@ -18,7 +18,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// If console is enabled, it will print the matrix position and status of each key pressed // If console is enabled, it will print the matrix position and status of each key pressed
#ifdef KEYLOGGER_ENABLE #ifdef KEYLOGGER_ENABLE
#if defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_iris_rev2) #if defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_keebio_iris_rev2)
xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.row, record->event.key.col, record->event.pressed); xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.row, record->event.key.col, record->event.pressed);
#else #else
xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
@ -37,31 +37,29 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
uint8_t temp_mod = get_mods(); uint8_t temp_mod = get_mods();
uint8_t temp_osm = get_oneshot_mods(); uint8_t temp_osm = get_oneshot_mods();
clear_mods(); clear_oneshot_mods(); clear_mods(); clear_oneshot_mods();
send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), MACRO_TIMER); send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY);
#ifndef MAKE_BOOTLOADER #ifndef MAKE_BOOTLOADER
if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT ) if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT )
#endif #endif
{ {
#if defined(__arm__) #if defined(__arm__)
send_string_with_delay_P(PSTR(":dfu-util"), MACRO_TIMER); send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY);
#elif defined(BOOTLOADER_DFU) #elif defined(BOOTLOADER_DFU)
send_string_with_delay_P(PSTR(":dfu"), MACRO_TIMER); send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY);
#elif defined(BOOTLOADER_HALFKAY) #elif defined(BOOTLOADER_HALFKAY)
send_string_with_delay_P(PSTR(":teensy"), MACRO_TIMER); send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY);
#elif defined(BOOTLOADER_CATERINA) #elif defined(BOOTLOADER_CATERINA)
send_string_with_delay_P(PSTR(":avrdude"), MACRO_TIMER); send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY);
#endif // bootloader options #endif // bootloader options
} }
if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), MACRO_TIMER); } if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); }
send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), MACRO_TIMER); send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
set_mods(temp_mod);
set_oneshot_mods(temp_osm);
} }
break; break;
case VRSN: // Prints firmware version case VRSN: // Prints firmware version
if (record->event.pressed) { if (record->event.pressed) {
send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), MACRO_TIMER); send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
} }
break; break;

View file

@ -56,6 +56,8 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define ADJUST MO(_ADJUST) #define ADJUST MO(_ADJUST)
#define TG_MODS TG(_MODS) #define TG_MODS TG(_MODS)
#define TG_GAME TG(_GAMEPAD) #define TG_GAME TG(_GAMEPAD)
#define OS_LWR OSL(_LOWER)
#define OS_RSE OSL(_RAISE)
#define KC_SEC1 KC_SECRET_1 #define KC_SEC1 KC_SECRET_1
#define KC_SEC2 KC_SECRET_2 #define KC_SEC2 KC_SECRET_2

View file

@ -247,17 +247,20 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
void keyboard_post_init_rgb(void) { void keyboard_post_init_rgb(void) {
#ifdef RGBLIGHT_ENABLE #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_STARTUP_ANIMATION)
rgblight_enable_noeeprom(); if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); }
if (rgblight_config.enable) {
layer_state_set_user(layer_state); layer_state_set_user(layer_state);
uint16_t old_hue = rgblight_config.hue; uint16_t old_hue = rgblight_config.hue;
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
for (uint16_t i = 360; i > 0; i--) { for (uint16_t i = 360; i > 0; i--) {
rgblight_sethsv_noeeprom( ( i + old_hue) % 360, 255, 255); rgblight_sethsv_noeeprom( ( i + old_hue) % 360, 255, 255);
matrix_scan();
wait_ms(10); wait_ms(10);
} }
layer_state_set_user(layer_state); }
#endif #endif
layer_state_set_user(layer_state);
} }
void matrix_scan_rgb(void) { void matrix_scan_rgb(void) {
@ -278,7 +281,7 @@ uint32_t layer_state_set_rgb(uint32_t state) {
switch (biton32(state)) { switch (biton32(state)) {
case _MACROS: case _MACROS:
rgblight_sethsv_noeeprom_orange(); rgblight_sethsv_noeeprom_orange();
userspace_config.is_overwatch ? rgblight_effect_snake(RGBLIGHT_MODE_SNAKE + 2) : rgblight_effect_snake(RGBLIGHT_MODE_SNAKE + 3); userspace_config.is_overwatch ? rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 2) : rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 3);
break; break;
case _MEDIA: case _MEDIA:
rgblight_sethsv_noeeprom_chartreuse(); rgblight_sethsv_noeeprom_chartreuse();

View file

@ -9,7 +9,9 @@ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += tap_dances.c SRC += tap_dances.c
endif endif
EXTRAFLAGS += -flto ifeq ($(PLATFORM),AVR)
EXTRAFLAGS += -flto
endif
ifeq ($(strip $(NO_SECRETS)), yes) ifeq ($(strip $(NO_SECRETS)), yes)
OPT_DEFS += -DNO_SECRETS OPT_DEFS += -DNO_SECRETS
@ -26,6 +28,9 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes) ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes)
OPT_DEFS += -DRGBLIGHT_NOEEPROM OPT_DEFS += -DRGBLIGHT_NOEEPROM
endif endif
ifeq ($(strip $(RGBLIGHT_STARTUP_ANIMATION)), yes)
OPT_DEFS += -DRGBLIGHT_STARTUP_ANIMATION
endif
endif endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)