Просмотр исходного кода

Merge remote-tracking branch 'origin/develop' into xap

QMK Bot 11 месяцев назад
Родитель
Сommit
034657758a

+ 252 - 12
drivers/oled/glcdfont.c

@@ -1,16 +1,256 @@
-#include "progmem.h"
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later WITH BSD-2-Clause
 
-// Helidox 8x6 font with QMK Firmware Logo
-// Online editor: http://teripom.x0.com/
+#include "progmem.h"
 
+/**
+ * QMK 6x8 Font for LCD and OLED displays
+ *
+ * Derived from the first half of the Adafruit GFX Library font:
+ *   https://github.com/adafruit/Adafruit-GFX-Library
+ *
+ * The first 128 characters match that of code page 437, the character set used by the original IBM PC, which includes all printable ASCII characters.
+ * Each byte represents a column of 8 pixels, with the least significant bit being the top of the glyph.
+ *
+ * A large 21x3 character QMK Firmware logo is encoded from 0x80-0x94, 0xA0-0xB4, and 0xC0-0xD4.
+ * 2x2 character OS logos for Apple, Windows, Linux and Android are encoded from 0x95-0x9C and 0xB5-0xBC.
+ */
 static const unsigned char font[] PROGMEM = {
-    0x07, 0x08, 0x7F, 0x08, 0x07, 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, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E,
-    0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 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, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E, 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F,
-    0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 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, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 NUL / Ψ
+    0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x01 SOH / ☺︎
+    0xC1, 0x94, 0xB0, 0x94, 0xC1, 0x00, // 0x02 STX / ☻
+    0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 ETX / ♥︎
+    0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 EOT / ♦︎
+    0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 ENQ / ♣︎
+    0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 ACK / ♠︎
+    0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 BEL / •
+    0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 BS  / ◘
+    0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 HT  / ○
+    0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A LF  / ◙
+    0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B VT  / ♂︎
+    0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C FF  / ♀︎
+    0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D CR  / ♪
+    0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E SO  / ♫
+    0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F SI  / ☼
+
+    0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 DLE / ►
+    0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 DC1 / ◄
+    0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 DC2 / ↕︎
+    0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 DC3 / ‼︎
+    0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 DC4 / ¶
+    0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 NAK / §
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 SYN / ▬
+    0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 ETB / ↨
+    0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 CAN / ↑
+    0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 EM  / ↓
+    0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A SUB / →
+    0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B ESC / ←
+    0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C FS  / ∟
+    0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D GS  / ↔︎
+    0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E RS  / ▲
+    0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F US  / ▼
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 Space
+    0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 !
+    0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 "
+    0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 #
+    0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 $
+    0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 %
+    0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 &
+    0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 '
+    0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 (
+    0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 )
+    0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A *
+    0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B +
+    0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C ,
+    0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D -
+    0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E .
+    0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F /
+
+    0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 0
+    0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 1
+    0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 2
+    0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 3
+    0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 4
+    0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 5
+    0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 6
+    0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 7
+    0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 8
+    0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 9
+    0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A :
+    0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B ;
+    0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C <
+    0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D =
+    0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E >
+    0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F ?
+
+    0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 @
+    0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 A
+    0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 B
+    0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 C
+    0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 D
+    0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 E
+    0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 F
+    0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 G
+    0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 H
+    0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 I
+    0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A J
+    0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B K
+    0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C L
+    0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D M
+    0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E N
+    0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F O
+
+    0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 P
+    0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 Q
+    0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 R
+    0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 S
+    0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 T
+    0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 U
+    0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 V
+    0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 W
+    0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 X
+    0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 Y
+    0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A Z
+    0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B [
+    0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C Backslash
+    0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D ]
+    0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E ^
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F _
+
+    0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 `
+    0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 a
+    0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 b
+    0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 c
+    0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 d
+    0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 e
+    0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 f
+    0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, // 0x67 g
+    0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 h
+    0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 i
+    0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A j
+    0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B k
+    0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C l
+    0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D m
+    0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E n
+    0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F o
+
+    0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 p
+    0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, // 0x71 q
+    0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 r
+    0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 s
+    0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 t
+    0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 u
+    0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 v
+    0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 w
+    0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 x
+    0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, // 0x79 y
+    0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A z
+    0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B {
+    0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C |
+    0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D }
+    0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E ~
+    0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F DEL / ⌂
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 QMK Logo Top 1
+    0x00, 0x00, 0x80, 0x80, 0xE0, 0xF0, // 0x81 QMK Logo Top 2
+    0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0x7C, // 0x82 QMK Logo Top 3
+    0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0xF0, // 0x83 QMK Logo Top 4
+    0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x84 QMK Logo Top 5
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x85 QMK Logo Top 6
+    0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x86 QMK Logo Top 7
+    0x80, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x87 QMK Logo Top 8
+    0x00, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x88 QMK Logo Top 9
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x00, // 0x89 QMK Logo Top 10
+    0x00, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x8A QMK Logo Top 11
+    0x80, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x8B QMK Logo Top 12
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8C QMK Logo Top 13
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8D QMK Logo Top 14
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E QMK Logo Top 15
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F QMK Logo Top 16
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 QMK Logo Top 17
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 QMK Logo Top 18
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x92 QMK Logo Top 19
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x93 QMK Logo Top 20
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 QMK Logo Top 21
+    0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, // 0x95 Apple Logo TL
+    0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, // 0x96 Apple Logo TR
+    0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x97 Windows Logo TL
+    0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x98 Windows Logo TR
+    0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, // 0x99 Linux Logo TL
+    0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, // 0x9A Linux Logo TR
+    0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, // 0x9B Android Logo TL
+    0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, // 0x9C Android Logo TR
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 QMK Logo Middle 1
+    0x00, 0x00, 0xAA, 0xAA, 0xFF, 0xFF, // 0xA1 QMK Logo Middle 2
+    0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0x00, // 0xA2 QMK Logo Middle 3
+    0xDF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, // 0xA3 QMK Logo Middle 4
+    0xFF, 0xAA, 0xAA, 0x00, 0x00, 0x00, // 0xA4 QMK Logo Middle 5
+    0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, // 0xA5 QMK Logo Middle 6
+    0xC1, 0xC1, 0xC1, 0x7F, 0x3E, 0x00, // 0xA6 QMK Logo Middle 7
+    0xFF, 0xFF, 0x0F, 0x3C, 0x78, 0x3C, // 0xA7 QMK Logo Middle 8
+    0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, // 0xA8 QMK Logo Middle 9
+    0x1C, 0x3E, 0x77, 0xE3, 0xC1, 0x00, // 0xA9 QMK Logo Middle 10
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0xAA QMK Logo Middle 11
+    0x19, 0x19, 0x19, 0x00, 0xFD, 0xFD, // 0xAB QMK Logo Middle 12
+    0x00, 0xFE, 0xFC, 0x06, 0x06, 0x00, // 0xAC QMK Logo Middle 13
+    0xFE, 0xFC, 0x06, 0x06, 0xFC, 0xFC, // 0xAD QMK Logo Middle 14
+    0x06, 0x06, 0xFE, 0xFC, 0x00, 0x1E, // 0xAE QMK Logo Middle 15
+    0x7C, 0xE0, 0x78, 0x0C, 0x78, 0xE0, // 0xAF QMK Logo Middle 16
+
+    0x7C, 0x1E, 0x00, 0x64, 0xF6, 0x92, // 0xB0 QMK Logo Middle 17
+    0x92, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, // 0xB1 QMK Logo Middle 18
+    0x06, 0x06, 0x00, 0x3C, 0x7E, 0xD2, // 0xB2 QMK Logo Middle 19
+    0xD2, 0xDE, 0x4C, 0x00, 0x00, 0x00, // 0xB3 QMK Logo Middle 20
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB4 QMK Logo Middle 21
+    0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, // 0xB5 Apple Logo BL
+    0x78, 0x70, 0x60, 0x00, 0x00, 0x00, // 0xB6 Apple Logo BR
+    0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB7 Windows Logo BL
+    0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB8 Windows Logo BR
+    0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, // 0xB9 Linux Logo BL
+    0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, // 0xBA Linux Logo BR
+    0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, // 0xBB Android Logo BL
+    0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, // 0xBC Android Logo BR
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 QMK Logo Bottom 1
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xC1 QMK Logo Bottom 2
+    0x07, 0x1F, 0x07, 0x1F, 0x07, 0x1F, // 0xC2 QMK Logo Bottom 3
+    0x07, 0x1F, 0x07, 0x1F, 0x07, 0x07, // 0xC3 QMK Logo Bottom 4
+    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC4 QMK Logo Bottom 5
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC5 QMK Logo Bottom 6
+    0x00, 0x00, 0x01, 0x03, 0x02, 0x00, // 0xC6 QMK Logo Bottom 7
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC7 QMK Logo Bottom 8
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC8 QMK Logo Bottom 9
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC9 QMK Logo Bottom 10
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA QMK Logo Bottom 11
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCB QMK Logo Bottom 12
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCC QMK Logo Bottom 13
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCD QMK Logo Bottom 14
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCE QMK Logo Bottom 15
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCF QMK Logo Bottom 16
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 QMK Logo Bottom 17
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD1 QMK Logo Bottom 18
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD2 QMK Logo Bottom 19
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD3 QMK Logo Bottom 10
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD4 QMK Logo Bottom 21
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00  // 0xDF
 };

+ 89 - 0
keyboards/clog/keyboard.json

@@ -0,0 +1,89 @@
+{
+    "keyboard_name": "The Clog",
+    "manufacturer": "S'mores",
+    "url": "https://github.com/smores56/clog",
+    "maintainer": "@smores56",
+    "usb": {
+      "vid": "0xBEEF",
+      "pid": "0x5051",
+      "device_version": "0.0.1"
+    },
+    "development_board": "elite_c",
+    "features": {
+        "bootmagic": true,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": false
+    },
+    "matrix_pins": {
+        "direct": [
+            ["B2", "F7", "F6", "F5", "F4"],
+            ["B6", "B3", "B1", "D3", "D1"],
+            ["D0", "D4", "C6", "D7", "E6"],
+            ["B4", "B5", null, null, null]
+        ]
+    },
+    "split": {
+        "bootmagic": {
+            "matrix": [4, 4]
+        },
+        "enabled": true,
+        "matrix_pins": {
+            "right": {
+                "direct": [
+                    ["F4", "F5", "F6", "F7", "B2"],
+                    ["D1", "D3", "B1", "B3", "B6"],
+                    ["E6", "D7", "C6", "D4", "D0"],
+                    ["B5", "B4", null, null, null]
+                ]
+            }
+        },
+        "serial": {
+            "pin": "D2"
+        }
+    },
+    "community_layouts": ["split_3x5_2"],
+    "layout_aliases": {
+        "LAYOUT": "LAYOUT_split_3x5_2"
+    },
+    "layouts": {
+        "LAYOUT_split_3x5_2": {
+            "layout": [
+                {"label": "L01", "matrix": [0, 0], "x": 0, "y": 2.27},
+                {"label": "L02", "matrix": [0, 1], "x": 2, "y": 0.31},
+                {"label": "L03", "matrix": [0, 2], "x": 3, "y": 0},
+                {"label": "L04", "matrix": [0, 3], "x": 4, "y": 0.28},
+                {"label": "L05", "matrix": [0, 4], "x": 5, "y": 0.42},
+                {"label": "R01", "matrix": [4, 0], "x": 9, "y": 0.42},
+                {"label": "R02", "matrix": [4, 1], "x": 10, "y": 0.28},
+                {"label": "R03", "matrix": [4, 2], "x": 11, "y": 0},
+                {"label": "R04", "matrix": [4, 3], "x": 12, "y": 0.31},
+                {"label": "R05", "matrix": [4, 4], "x": 14, "y": 2.27},
+                {"label": "L06", "matrix": [1, 0], "x": 0, "y": 2.27},
+                {"label": "L07", "matrix": [1, 1], "x": 2, "y": 1.31},
+                {"label": "L08", "matrix": [1, 2], "x": 3, "y": 1},
+                {"label": "L09", "matrix": [1, 3], "x": 4, "y": 1.28},
+                {"label": "L10", "matrix": [1, 4], "x": 5, "y": 1.42},
+                {"label": "R06", "matrix": [5, 0], "x": 9, "y": 1.42},
+                {"label": "R07", "matrix": [5, 1], "x": 10, "y": 1.28},
+                {"label": "R08", "matrix": [5, 2], "x": 11, "y": 1},
+                {"label": "R09", "matrix": [5, 3], "x": 12, "y": 1.31},
+                {"label": "R10", "matrix": [5, 4], "x": 14, "y": 2.27},
+                {"label": "L11", "matrix": [2, 0], "x": 0, "y": 3.27},
+                {"label": "L12", "matrix": [2, 1], "x": 2, "y": 2.31},
+                {"label": "L13", "matrix": [2, 2], "x": 3, "y": 2},
+                {"label": "L14", "matrix": [2, 3], "x": 4, "y": 2.28},
+                {"label": "L15", "matrix": [2, 4], "x": 5, "y": 2.42},
+                {"label": "R11", "matrix": [6, 0], "x": 9, "y": 2.42},
+                {"label": "R12", "matrix": [6, 1], "x": 10, "y": 2.28},
+                {"label": "R13", "matrix": [6, 2], "x": 11, "y": 2},
+                {"label": "R14", "matrix": [6, 3], "x": 12, "y": 2.31},
+                {"label": "R15", "matrix": [6, 4], "x": 14, "y": 3.27},
+                {"label": "L16", "matrix": [3, 0], "x": 5, "y": 3.9},
+                {"label": "L17", "matrix": [3, 1], "x": 6, "y": 3.7},
+                {"label": "R16", "matrix": [7, 0], "x": 8, "y": 3.7},
+                {"label": "R17", "matrix": [7, 1], "x": 9, "y": 3.9}
+            ]
+        }
+    }
+}

+ 7 - 0
keyboards/clog/keymaps/default/config.h

@@ -0,0 +1,7 @@
+// Copyright 2024 Sam Mohr (@smores56)
+// SPDX-License-Identifier: GPL-2.0+
+
+#pragma once
+
+// Defaults for usable home row mods
+#define TAPPING_TERM 250

+ 35 - 0
keyboards/clog/keymaps/default/keymap.c

@@ -0,0 +1,35 @@
+// Copyright 2024 Sam Mohr (@smores56)
+// SPDX-License-Identifier: GPL-2.0+
+
+#include QMK_KEYBOARD_H
+
+/* Base layer 0 layout uses home row mods. See the following guide for details:
+ * https://precondition.github.io/home-row-mods
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT_split_3x5_2(
+    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,        KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
+    CTL_T(KC_A),ALT_T(KC_S),GUI_T(KC_D),SFT_T(KC_F), KC_G,    KC_H, SFT_T(KC_J),GUI_T(KC_K),ALT_T(KC_L),CTL_T(KC_SCLN),
+    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,        KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+                          LT(2,KC_TAB), KC_ENT,      KC_SPC,  LT(1,KC_BSPC)
+    ),
+    [1] = LAYOUT_split_3x5_2(
+    KC_INS,  KC_1,    KC_2,    KC_3,    KC_VOLU,     KC_HOME, KC_PGDN, KC_PGUP, KC_END,  KC_DQUO,
+    KC_DEL,  KC_4,    KC_5,    KC_6,    KC_VOLD,     KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_QUOT,
+    KC_CAPS, KC_7,    KC_8,    KC_9,    KC_0,        _______, _______, _______, _______, _______,
+                               MO(3),   QK_GESC,     _______, _______
+    ),
+    [2] = LAYOUT_split_3x5_2(
+    _______, KC_LBRC, KC_LCBR, KC_RCBR, _______,     KC_CIRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_TILD,
+    KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,     KC_AMPR, KC_MINS, KC_EQL,  KC_BSLS, KC_GRV,
+    _______, _______, _______, _______, _______,     KC_ASTR, KC_UNDS, KC_PLUS, KC_PIPE, _______,
+                               _______, _______,     KC_DEL,  MO(3)
+    ),
+    [3] = LAYOUT_split_3x5_2(
+    _______, KC_F1,   KC_F2,   KC_F3,   KC_F10,      _______, MS_WHLU, MS_WHLD, _______, QK_BOOT,
+    _______, KC_F4,   KC_F5,   KC_F6,   KC_F11,      MS_LEFT, MS_DOWN, MS_UP,   MS_RGHT, KC_INS,
+    _______, KC_F7,   KC_F8,   KC_F9,   KC_F12,      _______, MS_BTN1, MS_BTN2, _______, _______,
+                               _______, _______,     _______, _______
+    )
+};

+ 26 - 0
keyboards/clog/readme.md

@@ -0,0 +1,26 @@
+# The Clog
+
+This is the official firmware for a family of boards designed by [smores56](https://github.com/smores56),
+the first of which was [the Clog](https://github.com/smores56/clog). This firmware works for the following boards:
+
+- [The Clog](https://github.com/smores56/clog)
+- [The Clog V3](https://github.com/smores56/clog-v3)
+- [The Steel Toe](https://github.com/smores56/steel-toe)
+- [The Sephirette](https://github.com/smores56/sephirette)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make clog:default
+
+Flashing example for this keyboard:
+
+    make clog:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

+ 0 - 23
platforms/avr/drivers/glcdfont.c

@@ -1,23 +0,0 @@
-// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
-// See gfxfont.h for newer custom bitmap font info.
-
-#include "progmem.h"
-
-// Standard ASCII 5x7 font
-
-static const unsigned char font[] PROGMEM = {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x18, 0x3C, 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24, 0x18, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C,
-    0x30, 0x38, 0x3E, 0x38, 0x30, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x41, 0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, 0x36, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00,
-    0x00, 0x08, 0x14, 0x22, 0x41, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, 0x14, 0x63, 0x03, 0x04, 0x78, 0x04, 0x03,
-    0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x38, 0x44, 0x44, 0x44, 0x28, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x48, 0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, 0x30, 0x40, 0x3C,
-    0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x1E, 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40, 0x20, 0x7A, 0x38, 0x54, 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41, 0x22, 0x54, 0x54, 0x78, 0x42,                                                                                                                                                                                                                                                                                                             // a-umlaut
-    0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, 0x1E, 0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, 0x54, 0x54, 0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, 0x7C, 0x41, 0x00, 0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, 0x40, 0x7D, 0x12, 0x11, 0x12, 0x7D,                                                                                                                                                                                                                                                                                                                                                                                                       // A-umlaut
-    0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, 0x54, 0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, 0x49, 0x49, 0x32, 0x3A, 0x44, 0x44, 0x44, 0x3A,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               // o-umlaut
-    0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, 0x42, 0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x3D, 0x42, 0x42, 0x42, 0x3D,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             // O-umlaut
-    0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, 0x7E, 0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, 0x29, 0xF6, 0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, 0x79, 0x41, 0x00, 0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, 0x32, 0x38, 0x40, 0x40, 0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, 0x7D, 0x0D, 0x19, 0x31, 0x7D, 0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, 0x29, 0x29, 0x29, 0x26, 0x30, 0x48, 0x4D, 0x40, 0x20, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A, 0x14, 0x08, 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code
-    0xAA, 0x55, 0xAA, 0x55, 0xAA,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     // 50% block
-    0xFF, 0x55, 0xFF, 0x55, 0xFF,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     // 75% block
-    0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x17, 0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F,
-    0x14, 0x14, 0x14, 0xF4, 0x14, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44, 0x38, 0x44, 0xFC, 0x4A, 0x4A, 0x4A, 0x34,                                                                                                                                                                                                                                                                                                                                                                                                      // sharp-s or beta
-    0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, 0x55, 0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, 0x20, 0x1E, 0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, 0xA5, 0x99, 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, 0x4C, 0x30, 0x4A, 0x4D, 0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, 0xBC, 0x62, 0x5A, 0x46, 0x3D, 0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x44, 0x44, 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44, 0x40, 0x40, 0x44, 0x4A, 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0, 0x80, 0xFF, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36, 0x24, 0x36, 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F, 0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP
-};