summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/splitkb/kyria/keymaps/bbaserdem/config.h32
-rw-r--r--keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c109
-rw-r--r--keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md32
-rw-r--r--keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk30
-rw-r--r--layouts/community/ortho_3x10/bbaserdem/config.h21
-rw-r--r--layouts/community/ortho_3x10/bbaserdem/keymap.c98
-rw-r--r--layouts/community/ortho_3x10/bbaserdem/readme.md19
-rwxr-xr-xlayouts/community/ortho_3x10/bbaserdem/rules.mk23
-rwxr-xr-xlayouts/community/ortho_4x12/bbaserdem/config.h26
-rwxr-xr-xlayouts/community/ortho_4x12/bbaserdem/keymap.c88
-rw-r--r--layouts/community/ortho_4x12/bbaserdem/readme.md12
-rwxr-xr-xlayouts/community/ortho_4x12/bbaserdem/rules.mk26
-rw-r--r--layouts/community/split_3x5_3/bbaserdem/config.h35
-rw-r--r--layouts/community/split_3x5_3/bbaserdem/keymap.c117
-rw-r--r--layouts/community/split_3x5_3/bbaserdem/readme.md18
-rw-r--r--layouts/community/split_3x5_3/bbaserdem/rules.mk22
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/chconf.h23
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/config.h77
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/halconf.h24
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/keymap.c191
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/mcuconf.h25
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/readme.md15
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/rules.mk47
-rw-r--r--layouts/community/split_3x6_3/bbaserdem/ssd1306.c16
-rw-r--r--users/bbaserdem/.gitignore2
-rw-r--r--users/bbaserdem/bb-audio.c82
-rw-r--r--users/bbaserdem/bb-audio.h28
-rw-r--r--users/bbaserdem/bb-backlight.c30
-rw-r--r--users/bbaserdem/bb-backlight.h23
-rw-r--r--users/bbaserdem/bb-encoder.c514
-rw-r--r--users/bbaserdem/bb-encoder.h29
-rw-r--r--users/bbaserdem/bb-macro.c156
-rw-r--r--users/bbaserdem/bb-macro.h113
-rw-r--r--users/bbaserdem/bb-oled-extra.c796
-rw-r--r--users/bbaserdem/bb-oled-extra.h25
-rw-r--r--users/bbaserdem/bb-oled.c216
-rw-r--r--users/bbaserdem/bb-oled.h32
-rw-r--r--users/bbaserdem/bb-rgb.c123
-rw-r--r--users/bbaserdem/bb-rgb.h28
-rw-r--r--users/bbaserdem/bb-underglow.c116
-rw-r--r--users/bbaserdem/bb-underglow.h28
-rw-r--r--users/bbaserdem/bbaserdem.c376
-rw-r--r--users/bbaserdem/bbaserdem.h573
-rw-r--r--users/bbaserdem/config.h134
-rw-r--r--users/bbaserdem/keymap-bitmaps/.gitignore4
-rwxr-xr-xusers/bbaserdem/keymap-bitmaps/cropBmp38
-rw-r--r--users/bbaserdem/readme.md131
-rw-r--r--users/bbaserdem/rules.mk87
48 files changed, 0 insertions, 4810 deletions
diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/config.h b/keyboards/splitkb/kyria/keymaps/bbaserdem/config.h
deleted file mode 100644
index b7b883d3bd..0000000000
--- a/keyboards/splitkb/kyria/keymaps/bbaserdem/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-
-// Kyria specific
-#ifdef KEYBOARD_splitkb_kyria_rev1
- // Split definition; use the following to flash;
- // pro-micro: avrdude-split-left/right
- // elite-c: dfu-split-left/right
-# define ENCODER_DIRECTION_FLIP
-# define EE_HANDS
-
- // Make sure kyria has bigger oled display
-# ifdef OLED_ENABLE
-# define OLED_DISPLAY_128X64
-# endif
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c b/keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c
deleted file mode 100644
index d3720ea764..0000000000
--- a/keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bbaserdem.h"
-
-#define LAYOUT_split_3x6_5_wrapper(...) LAYOUT_split_3x6_5(__VA_ARGS__)
-
-/* F layout
- * ┌───┬───┬───┬───┬───┬───┐        ┌───┬───┬───┬───┬───┬───┐
- * │ W │ F │ G │ Ğ │ I │ O │        │ D │ R │ N │ H │ P │ Q │
- * ├───┼───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┼───┤
- * │ X │ A │ S │ D │ F │ G │        │ T │ K │ M │ L │ Y │ Ş │
- * ├───┼───┼───┼───┼───┼───┼───┬───┐ ┌───┬───┼───┼───┼───┼───┼───┼───┤
- * │* +│ J │ Ö │ V │ C │ Ç │   │   │ │   │   │ Z │ S │ B │. :│, ;│< >│
- * └───┴───┴───┼───┼───┼───┤Esc│Shf│ │Shf│Del├───┼───┼───┼───┴───┴───┘
- *             │En1│Tab│Ent│ │ │ │ │ │Spc│Bsp│En2│
- *             └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_split_3x6_5_wrapper(
- _BL1_1_,_BL1_5_, _BR1_5_,_BR1_1_,
- _BL2_1_,_BL2_5_, _BR2_5_,_BR2_1_,
- _BL3_1_,_BL3_5_,xxx2xxx,xxx2xxx,_BR3_5_,_BR3_1_,
- BB_ENC0, _BL4_3_,KC_LSFT,KC_RSFT,_BR4_3_,BB_ENC1
- ),
- [_CHAR] = LAYOUT_split_3x6_5_wrapper(
- XXXXXXX,_CL1_5_, _CR1_5_,XXXXXXX,
- XXXXXXX,_CL2_5_, _CR2_5_,XXXXXXX,
- XXXXXXX,_CL3_5_,xxx2xxx,xxx2xxx,_CR3_5_,XXXXXXX,
- _______,_CL4_3_,_______,_______,_CR4_3_,_______
- ),
- [_GAME] = LAYOUT_split_3x6_5_wrapper(
- _GA1_1_,_GA1_5_, ___5___,___1___,
- _GA2_1_,_GA2_5_, ___5___,___1___,
- _GA3_1_,_GA3_5_,xxx2xxx,xxx2xxx,___5___,___1___,
- _______,_GA4_3_,_______,_______,___3___,_______
- ),
- [_MEDI] = LAYOUT_split_3x6_5_wrapper(
- ___1___,___5___, _ME1_5_,___1___,
- ___1___,___5___, _ME2_5_,___1___,
- ___1___,___5___,xxx2xxx,xxx2xxx,_ME3_5_,___1___,
- ___1___,___3___,_______,_______,_ME4_3_,___1___
- ),
- [_NAVI] = LAYOUT_split_3x6_5_wrapper(
- ___1___,___5___, _NA1_5_,___1___,
- ___1___,___5___, _NA2_5_,___1___,
- ___1___,___5___,xxx2xxx,xxx2xxx,_NA3_5_,___1___,
- ___1___,___3___,_______,_______,_NA4_3_,___1___
- ),
- [_SYMB] = LAYOUT_split_3x6_5_wrapper(
- ___1___,___5___, _SY1_5_,___1___,
- ___1___,___5___, _SY2_5_,___1___,
- ___1___,___5___,xxx2xxx,xxx2xxx,_SY3_5_,___1___,
- ___1___,___3___,_______,_______,_SY4_3_,___1___
- ),
- [_NUMB] = LAYOUT_split_3x6_5_wrapper(
- ___1___,_NU1_5_, ___5___,___1___,
- ___1___,_NU2_5_, ___5___,___1___,
- ___1___,_NU3_5_,xxx2xxx,xxx2xxx,___5___,___1___,
- ___1___,_NU4_3_,_______,_______,___3___,___1___
- ),
- [_FUNC] = LAYOUT_split_3x6_5_wrapper(
- ___1___,_FU1_5_, ___5___,___1___,
- ___1___,_FU2_5_, ___5___,___1___,
- ___1___,_FU3_5_,xxx2xxx,xxx2xxx,___5___,___1___,
- ___1___,_FU4_3_,_______,_______,___3___,___1___
- ),
- [_MOUS] = LAYOUT_split_3x6_5_wrapper(
- ___1___,_MO1_5_, ___5___,___1___,
- ___1___,_MO2_5_, ___5___,___1___,
- ___1___,_MO3_5_,xxx2xxx,xxx2xxx,___5___,___1___,
- ___1___,_MO4_3_,_______,_______,___3___,___1___
- ),
- [_MUSI] = LAYOUT_split_3x6_5_wrapper(
- _MU_12_,_MU_12_,
- _MU_06_,xxx2xxx,xxx2xxx,_MU_06_,
- MU_TOG,_MUL_3_,_MU_02_,_MUR_3_,___1___
- )
-};
-
-#ifdef KEYBOARD_splitkb_kyria_rev1 // Kyria specific code
-#ifdef OLED_ENABLE // Kyria's oled screen
-// Rotate the display on kyria
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_180;
-}
-// For kyria; print logo, and allow default status printing
-bool oled_task_keymap(void) {
- render_qmk_logo(0, 0);
- render_status_lite(4, 0);
- return false;
-}
-#endif //OLED_ENABLE
-#endif //KEYBOARD_splitkb_kyria_rev1
diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md b/keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md
deleted file mode 100644
index 6381612978..0000000000
--- a/keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-This folder contains my Kyria (`split_3x6_5`) board layout.
-Check out the [user readme](../../../../../users/bbaserdem/readme.md) for more info.
-
-# Kyria
-
-I use a rev 1.3 PCB as a daily driver.
-
-## Hardware
-
-* Using a modified High-profile case; with metal switch plate.
-* Currently using a Pro-Micro and an Elite-C as microcontrollers.
-* Using Gateron Silent Black Ink with Progressive springs (100g), lubed.
-* Have mill-max sockets for hotswap feature.
-* All microcontrollers and OLED's are socketed for easy removal.
-
-## Features
-
-* Use two thumb keys in the 2u layout.
-* Have rotary encoders in the outermost keys of the thumb cluster.
-* Have underglow leds soldered.
-
-## Issues
-
-* Stabilizers squiek, and need lubing.
-* The double tap buttons (home row; left leader the most) don't contact well.
-
-## Todo
-
-* Switch to Proton C conversion with a game plan.
-* Lube stabilizers.
-* Get tenting puck.
-* (Not depending on me) migrate this code to layouts.
diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk b/keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk
deleted file mode 100644
index 21013120e6..0000000000
--- a/keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2021 Batuhan Başerdem
-# <baserdem.batuhan@gmail.com> @bbaserdem
-#
-# 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/>.
-
-# Kyria hardware
-ifneq (,$(findstring splitkb/kyria/rev1,$(KEYBOARD)))
- # Elective features
- ENCODER_ENABLE = yes
- OLED_ENABLE = yes
- # Nonexistent features
- AUDIO_ENABLE = no
- BACKLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = no
- # Space savers
- NKRO_ENABLE = no
- VELOCIKEY_ENABLE = no
- WPM_ENABLE = no
-endif
diff --git a/layouts/community/ortho_3x10/bbaserdem/config.h b/layouts/community/ortho_3x10/bbaserdem/config.h
deleted file mode 100644
index b792b2e6fa..0000000000
--- a/layouts/community/ortho_3x10/bbaserdem/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2019 Batuhan Başerdem <baserdem.batuhan@gmail.com> @bbaserdem
-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
-
-// Gherkin specific
-#ifdef KEYBOARD_40percentclub_gherkin
- #define MUSIC_MAP
- #define RGB_DI_PIN F6
- #define RGB_MATRIX_LED_COUNT 10
-#endif
diff --git a/layouts/community/ortho_3x10/bbaserdem/keymap.c b/layouts/community/ortho_3x10/bbaserdem/keymap.c
deleted file mode 100644
index 06228cc37a..0000000000
--- a/layouts/community/ortho_3x10/bbaserdem/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-Copyright 2019 Batuhan Başerdem <baserdem.batuhan@gmail.com> @bbaserdem
-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 "bbaserdem.h"
-
-#ifdef KEYBOARD_40percentclub_gherkin
- // Flip it
- #undef LAYOUT_ortho_3x10
- #define LAYOUT_ortho_3x10( \
- K00, K01, K02, K03, K04, K05, K10, K11, K12, K13 , \
- K14, K15, K20, K21, K22, K23, K24, K25, K30, K31 , \
- K32, K33, K34, K35, K40, K41, K42, K43, K44, K45 \
- ) { \
- { K45, K44, K43, K42, K41, K40 }, \
- { K35, K34, K33, K32, K31, K30 }, \
- { K25, K24, K23, K22, K21, K20 }, \
- { K15, K14, K13, K12, K11, K10 }, \
- { K05, K04, K03, K02, K01, K00 } \
- }
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Game pad
- * ,-----------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | F1 | F2 | F3 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |AdjsL| Q | W | E | R | Ent | Tab | Ctr | |^| | Alt |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Music| A | S | D | F | Spc |Shift| <-- | |v| | --> |
- * `-----------------------------------------------------------'
- */
- [_BASE] = LAYOUT_ortho_3x10(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F1, KC_F2, KC_F3,
- MO(_MEDI), KC_Q, KC_W, KC_E, KC_R, KC_ENT, KC_TAB, KC_LCTL,KC_UP, KC_LALT,
- MU_TOG, KC_A, KC_S, KC_D, KC_F, KC_SPC, KC_LSFT,KC_LEFT,KC_DOWN,KC_RGHT
- ),
-/* Adjust
- * ,-----------------------------------------------------------.
- * | Esc |RGBTg|HueUp|HueDn|SatUp|SatDn|ValUp|ValDn|ModNx|ModPr|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | |BltTg|Breth|BriUp|BriDn| | |Veloc|SpdUp|SpdDn|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Music| | | | | | | |EEprm|Reset|
- * `-----------------------------------------------------------'
- */
- [_MEDI] = LAYOUT_ortho_3x10(
- CK_TOGG,RGB_TOG,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,RGB_MOD,RGB_RMOD,
- _______,BL_TOGG,BL_BRTG,BL_INC, BL_DEC, XXXXXXX,XXXXXXX,VLK_TOG,RGB_SPI,RGB_SPD,
- AU_TOG, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,EE_CLR,QK_BOOT
- ),
- [_MUSI] = LAYOUT_ortho_3x10_wrapper(
- MU_FAST,_MU_08_,MU_REC,
- MU_SLOW,_MU_08_,MU_STOP,
- MU_TOG, _MU_08_,MU_PLAY
- ),
-};
-
-// Music map, guitar like.
-#ifdef AUDIO_ENABLE
-const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_3x10(
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
-);
-#endif
-
-// RGB matrix code
-#ifdef RGB_MATRIX_ENABLE
-// Gherkin
-#if defined(KEYBOARD_40percentclub_gherkin)
-led_config_t g_led_config = {
- { // Key Matrix to LED Index
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}
-}, { // LED Index to Physical Position
- {224, 0}, {168, 0}, {112, 0}, { 56, 0}, { 0, 0},
- { 0, 64}, { 56, 64}, {112, 64}, {168, 64}, {224, 64},
-}, { // LED Index to Flag
- 2,2,2,2,2,2,2,2,2,2
-}};
-// Disable layer switching
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {return true;}
-#endif // Gherkin
-#endif // RGB Matrix
diff --git a/layouts/community/ortho_3x10/bbaserdem/readme.md b/layouts/community/ortho_3x10/bbaserdem/readme.md
deleted file mode 100644
index 3681eb840a..0000000000
--- a/layouts/community/ortho_3x10/bbaserdem/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-This folder contains my [3x10\_ortho](../../../default/ortho_3x10) board layouts
-Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info.
-
-# Gherkin
-
-I use [Gherkin](../../../../keyboards/40percentclub/gherkin/readme.md).
-
-It is used as a game pad, and key layout is inspired by spare keys I had lying around.
-The firmware is very simple, and only includes one layer keymap, and RGB effects.
-
-## Status
-
-* [x] Layout adapted
-* [x] Tested build
-* [x] Confirmed on board
-
-## Build
-
-Build command: `CFLAGS="-Wno-error=deprecated" <FILL-IN-LATER>`
diff --git a/layouts/community/ortho_3x10/bbaserdem/rules.mk b/layouts/community/ortho_3x10/bbaserdem/rules.mk
deleted file mode 100755
index 7232f6969d..0000000000
--- a/layouts/community/ortho_3x10/bbaserdem/rules.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2019 Batuhan Başerdem <baserdem.batuhan@gmail.com> @bbaserdem
-# 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/>.
-
-# This small layout is a macro-pad; does not need userspace
-
-# Gherkin has both RGB strip and LED lights
-ifneq (,$(findstring 40percentclub/gherkin,$(KEYBOARD)))
- CONVERT_TO_PROTON_C = yes
- RGB_MATRIX_ENABLE = yes
- RGB_MATRIX_DRIVER = WS2812
- AUDIO_ENABLE = yes
- BACKLIGHT_ENABLE = yes
- VELOCIKEY_ENABLE = yes
-endif
diff --git a/layouts/community/ortho_4x12/bbaserdem/config.h b/layouts/community/ortho_4x12/bbaserdem/config.h
deleted file mode 100755
index fb3ec1371b..0000000000
--- a/layouts/community/ortho_4x12/bbaserdem/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-
-// Code pertaining to planck rev6
-#ifdef KEYBOARD_planck_rev6
- // Encoder I use;
-# ifdef ENCODER_RESOLUTION
-# undef ENCODER_RESOLUTION
-# endif
-# define ENCODER_RESOLUTION 2
-#endif
diff --git a/layouts/community/ortho_4x12/bbaserdem/keymap.c b/layouts/community/ortho_4x12/bbaserdem/keymap.c
deleted file mode 100755
index 91ddc61764..0000000000
--- a/layouts/community/ortho_4x12/bbaserdem/keymap.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bbaserdem.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Base layer
- [_BASE] = LAYOUT_ortho_4x12_wrapper(
- _BL1_5_,_BL1_1_,_BR1_1_,_BR1_5_,
- _BL2_5_,_BL2_1_,_BR2_1_,_BR2_5_,
- _BL3_5_,_BL3_1_,_BR3_1_,_BR3_5_,
- BB_ENC0,KC_DOWN,KC_UP, _BL4_3_,_BR4_3_,KC_LEFT,KC_RGHT,RGB_TOG
- ),
- // Extra characters overlay
- [_CHAR] = LAYOUT_ortho_4x12_wrapper(
- _CL1_5_,xxx2xxx,_CR1_5_,
- _CL2_5_,xxx2xxx,_CR2_5_,
- _CL3_5_,xxx2xxx,_CR3_5_,
- ___3___,_CL4_3_,_CR4_3_,___3___
- ),
- // Game layer: left_half
- [_GAME] = LAYOUT_ortho_4x12_wrapper(
- _GA1_5_,_GA1_1_,___6___,
- _GA2_5_,_GA2_1_,___6___,
- _GA3_5_,_GA3_1_,___6___,
- ___3___,_GA4_3_,___6___
- ),
- // Media layer: right_half
- [_MEDI] = LAYOUT_ortho_4x12_wrapper(
- ___6___,xxx1xxx,_ME1_5_,
- ___6___,xxx1xxx,_ME2_5_,
- ___6___,xxx1xxx,_ME3_5_,
- ___6___,_ME4_3_,___3___
- ),
- // Navigation layer: right_half
- [_NAVI] = LAYOUT_ortho_4x12_wrapper(
- ___6___,xxx1xxx,_NA1_5_,
- ___6___,xxx1xxx,_NA2_5_,
- ___6___,xxx1xxx,_NA3_5_,
- ___6___,_NA4_3_,___3___
- ),
- // Symbol layer: right_half
- [_SYMB] = LAYOUT_ortho_4x12_wrapper(
- ___6___,xxx1xxx,_SY1_5_,
- ___6___,xxx1xxx,_SY2_5_,
- ___6___,xxx1xxx,_SY3_5_,
- ___6___,_SY4_3_,___3___
- ),
- // Number layer: left_half
- [_NUMB] = LAYOUT_ortho_4x12_wrapper(
- xxx1xxx,_NU1_5_,___6___,
- xxx1xxx,_NU2_5_,___6___,
- xxx1xxx,_NU3_5_,___6___,
- ___3___,_NU4_3_,___6___
- ),
- // Function layer: left_half
- [_FUNC] = LAYOUT_ortho_4x12_wrapper(
- _FU1_5_,xxx1xxx,___6___,
- _FU2_5_,xxx1xxx,___6___,
- _FU3_5_,xxx1xxx,___6___,
- ___3___,_FU4_3_,___6___
- ),
- // Mouse layer: left_half
- [_MOUS] = LAYOUT_ortho_4x12_wrapper(
- _MO1_5_,xxx1xxx,___6___,
- _MO2_5_,xxx1xxx,___6___,
- _MO3_5_,xxx1xxx,___6___,
- ___3___,_MO4_3_,___6___
- ),
- // Music layer: everything
- [_MUSI] = LAYOUT_ortho_4x12_wrapper(
- _MU_12_,_MU_12_,_MU_12_,
- ___1___,_MU_02_,_MUL_3_,_MUR_3_,_MU_02_,___1___)
-};
diff --git a/layouts/community/ortho_4x12/bbaserdem/readme.md b/layouts/community/ortho_4x12/bbaserdem/readme.md
deleted file mode 100644
index 5eb6548574..0000000000
--- a/layouts/community/ortho_4x12/bbaserdem/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-This folder contains my [4x12\_ortho](../../../default/ortho_4x12) board layouts
-Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info.
-
-# Planck Light
-
-I use a couple [planck](../../../../keyboards/planck/readme.md) keyboards.
-To sell soon; don't use them anymore, but will keep the light version.
-
-# JJ40
-
-A planck rev4 replacement; for my acrylic planck case which used to host a now
-defunct rev4.
diff --git a/layouts/community/ortho_4x12/bbaserdem/rules.mk b/layouts/community/ortho_4x12/bbaserdem/rules.mk
deleted file mode 100755
index b3ce684315..0000000000
--- a/layouts/community/ortho_4x12/bbaserdem/rules.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-
-# Copyright 2021 Batuhan Başerdem
-# <baserdem.batuhan@gmail.com> @bbaserdem
-#
-# 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/>.
-
-# Planck rev6 has both RGBLIGHT and RGB_MATRIX enabled
-ifneq (,$(findstring planck/rev6,$(KEYBOARD)))
- RGB_MATRIX_ENABLE = yes
- RGBLIGHT_ENABLE = no
-endif
-# JJ40 here
-ifneq (,$(findstring jj40,$(KEYBOARD)))
- RGB_MATRIX_ENABLE = yes
-endif
diff --git a/layouts/community/split_3x5_3/bbaserdem/config.h b/layouts/community/split_3x5_3/bbaserdem/config.h
deleted file mode 100644
index 2f7c0f7068..0000000000
--- a/layouts/community/split_3x5_3/bbaserdem/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-
-// Split definition; use the following to flash;
-// pro-micro: avrdude-split-left/right
-// elite-c: dfu-split-left/right
-#define EE_HANDS
-
-#ifdef KEYBOARD_crkbd_rev1
- // Corne overrides
-# ifdef RGBLED_NUM
-# undef RGBLED_NUM
-# endif
-# ifdef RGB_MATRIX_LED_COUNT
-# undef RGB_MATRIX_LED_COUNT
-# endif
-# define RGBLED_NUM 48
-# define RGB_MATRIX_LED_COUNT RGBLED_NUM
-#endif // KEYBOARD_crkbd_rev1
diff --git a/layouts/community/split_3x5_3/bbaserdem/keymap.c b/layouts/community/split_3x5_3/bbaserdem/keymap.c
deleted file mode 100644
index f39a81082e..0000000000
--- a/layouts/community/split_3x5_3/bbaserdem/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bbaserdem.h"
-
-/* D layout
- * ┌───┬───┬───┬───┬───┐        ┌───┬───┬───┬───┬───┐
- * │' "│, <│. >│ P │ Y │        │ F │ G │ C │ R │ L │
- * ├───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┤
- * │ A │ O │ E │ U │ I │        │ D │ H │ T │ N │ S │
- * ├───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┤
- * │; :│ Q │ J │ K │ X │        │ B │ M │ W │ V │ Z │
- * └───┴───┴───┼───┼───┼───┐ ┌───┼───┼───┼───┴───┴───┘
- *            │Del│Tab│Spc│ │Ent│Esc│Bsp│
- *            └───┴───┴───┘ └───┴───┴───┘
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_split_3x5_3_wrapper(
- _BL1_5_,_BR1_5_,
- _BL2_5_,_BR2_5_,
- _BL3_5_,_BR3_5_,
- _BL4_3_,_BR4_3_
- ),
- [_CHAR] = LAYOUT_split_3x5_3_wrapper(
- _CL1_5_,_CR1_5_,
- _CL2_5_,_CR2_5_,
- _CL3_5_,_CR3_5_,
- _CL4_3_,_CR4_3_
- ),
- [_GAME] = LAYOUT_split_3x5_3_wrapper(
- _GA1_5_,___5___,
- _GA2_5_,___5___,
- _GA3_5_,___5___,
- _GA4_3_,___3___
- ),
- [_MEDI] = LAYOUT_split_3x5_3_wrapper(
- ___5___,_ME1_5_,
- ___5___,_ME2_5_,
- ___5___,_ME3_5_,
- ___3___,_ME4_3_
- ),
- [_NAVI] = LAYOUT_split_3x5_3_wrapper(
- ___5___,_NA1_5_,
- ___5___,_NA2_5_,
- ___5___,_NA3_5_,
- ___3___,_NA4_3_
- ),
- [_SYMB] = LAYOUT_split_3x5_3_wrapper(
- ___5___,_SY1_5_,
- ___5___,_SY2_5_,
- ___5___,_SY3_5_,
- ___3___,_SY4_3_
- ),
- [_NUMB] = LAYOUT_split_3x5_3_wrapper(
- _NU1_5_,___5___,
- _NU2_5_,___5___,
- _NU3_5_,___5___,
- _NU4_3_,___3___
- ),
- [_FUNC] = LAYOUT_split_3x5_3_wrapper(
- _FU1_5_,___5___,
- _FU2_5_,___5___,
- _FU3_5_,___5___,
- _FU4_3_,___3___
- ),
- [_MOUS] = LAYOUT_split_3x5_3_wrapper(
- _MO1_5_,___5___,
- _MO2_5_,___5___,
- _MO3_5_,___5___,
- _MO4_3_,___3___
- ),
- [_MUSI] = LAYOUT_split_3x5_3_wrapper(
- _MU_10_,
- _MU_10_,
- _MU_10_,
- _MUL_3_,_MUR_3_
- )
-};
-
-// RGB Matrix configuration
-#ifdef RGB_MATRIX_ENABLE
-
-// crkbd
-#ifdef KEYBOARD_crkbd_rev1
-/* This is left-right for crkbd indicator light
- * ┌──┬──┬──┬──┬──┐      ┌──┬──┬──┬──┬──┐
- * │23│18│17│10│09│      │33│34│41│42│47│
- * ├02┼──┼01┼──┼00┤      ├24┼──┼25┼──┼26┤
- * │22│19│16│11│08│     │32│35│40│43│46│
- * ├03┼──┼04┼──┼05┤      ├29┼──┼28┼──┼27┤
- * │21│20│15│12│07│     │31│36│39│44│45│
- * └──┴──┴──┼──┼──┼──┐┌──┼──┼──┼──┴──┴──┘
- *          │14│13│06││30│37│38│
- *          └──┴──┴──┘└──┴──┴──┘
- */
-
-// End of differentiations
-#endif // KEYBOARD_crkbd_rev1
-
-// End of code for the RGB_MATRIX setup
-#endif // RGB_MATRIX_ENABLE
diff --git a/layouts/community/split_3x5_3/bbaserdem/readme.md b/layouts/community/split_3x5_3/bbaserdem/readme.md
deleted file mode 100644
index 30cacd85ea..0000000000
--- a/layouts/community/split_3x5_3/bbaserdem/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-This folder contains my [split\_3x5\_3](../../../default/split_3x5_3) board layouts
-Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info.
-
-# Crkbd
-
-Using a no 6th column crkbd (rev 2.1 choc) as a mobile keyboard.
-
-This version uses ProMicro as controllers; can't have OLED and RGB at the same time.
-
-## Build
-
-QMK cli commands no longer works with Archlinux (2021 Sep.) on my PC for flashing promicro.
-In the past; I used to flash Pro Micro explicitly using the following line, for referance.
-
-```
-sudo avrdude -p atmgea34u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:<hexfile>.hex
-```
-
diff --git a/layouts/community/split_3x5_3/bbaserdem/rules.mk b/layouts/community/split_3x5_3/bbaserdem/rules.mk
deleted file mode 100644
index 047629b401..0000000000
--- a/layouts/community/split_3x5_3/bbaserdem/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Batuhan Başerdem
-# <baserdem.batuhan@gmail.com> @bbaserdem
-#
-# 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/>.
-
-# Corne keyboard
-ifneq (,$(findstring crkbd/rev1,$(KEYBOARD)))
- RGBLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = yes
- OLED_ENABLE = no
-endif
diff --git a/layouts/community/split_3x6_3/bbaserdem/chconf.h b/layouts/community/split_3x6_3/bbaserdem/chconf.h
deleted file mode 100644
index 4c6d15441f..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/chconf.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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/>.
- */
-
-// Code pertaining the ARM crkbd version
-#ifdef KEYBOARD_crkbd_rev1
-# define CH_CFG_ST_RESOLUTION 16
-# define CH_CFG_ST_FREQUENCY 10000
-# include_next "chconf.h"
-#endif // KEYBOARD_crkbd_rev1
diff --git a/layouts/community/split_3x6_3/bbaserdem/config.h b/layouts/community/split_3x6_3/bbaserdem/config.h
deleted file mode 100644
index 1d269335fe..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/config.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-// Split definition; use the following to flash;
-// pro-micro: avrdude-split-left/right
-// elite-c: dfu-split-left/right
-
-// Code pertaining to Corne ARM; from Waffle's keymap
-#ifdef KEYBOARD_crkbd_rev1
- // Use EE_HANDS to determine handedness
-# define EE_HANDS
-
- // Rebrand the PCB
-# undef PRODUCT
-# define PRODUCT "Protorne Keyboard"
-# undef MANUFACTURER
-# define MANUFACTURER "Waffles"
-
- // Remove OLED definitions?
-# undef USE_I2C
-# undef SSD1306OLED
-
- // Audio output on pin A5 (actualy will be output on B1 using keymap init)
-# ifdef AUDIO_ENABLE
-# define AUDIO_PIN A5
-# define MUSIC_MAP
-# endif
-
- // Set serial pin as D3 for sure
-# undef SOFT_SERIAL_PIN
-# define SOFT_SERIAL_PIN D3
-# define SERIAL_USART_SPEED 921600
-# define SERIAL_USART_DRIVER SD1
-# define SERIAL_USART_TX_PAL_MODE 7
-
- // Things to make RGB matrix work on the waffle board
-# undef RGBLED_NUM
-# define RGBLED_NUM 54
-# undef RGB_DI_PIN
-# define RGB_DI_PIN B5
-# ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100
-# define RGB_MATRIX_SPLIT { 27, 27 }
-# endif
-# define WS2812_PWM_DRIVER PWMD3
-# define WS2812_PWM_CHANNEL 3
-# define WS2812_PWM_PAL_MODE 2
-# define WS2812_DMA_STREAM STM32_DMA1_STREAM3
-# define WS2812_DMA_CHANNEL 3
-
- // OLED related code
-# ifdef OLED_ENABLE
-# define OLED_UPDATE_INTERVAL 100
-# endif
-
- // Encoder definitons
-# define ENCODERS_PAD_A { B2 }
-# define ENCODERS_PAD_B { B6 }
-# define ENCODER_RESOLUTIONS { 4 }
-# define ENCODERS_PAD_A_RIGHT { B2 }
-# define ENCODERS_PAD_B_RIGHT { B6 }
-# define ENCODER_RESOLUTIONS_RIGHT { 2 }
-#endif
diff --git a/layouts/community/split_3x6_3/bbaserdem/halconf.h b/layouts/community/split_3x6_3/bbaserdem/halconf.h
deleted file mode 100644
index f3978c4175..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/halconf.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-
-#ifdef KEYBOARD_crkbd_rev1
- // #define HAL_USE_DAC TRUE
-# define HAL_USE_PWM TRUE
-# define HAL_USE_SERIAL TRUE
-# include_next <halconf.h>
-#endif
diff --git a/layouts/community/split_3x6_3/bbaserdem/keymap.c b/layouts/community/split_3x6_3/bbaserdem/keymap.c
deleted file mode 100644
index 589b8eda0c..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/keymap.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bbaserdem.h"
-
-#ifdef KEYBOARD_crkbd_rev1
-# include "bb-oled-extra.h"
-#endif // KEYBOARD_crkbd_rev1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_split_3x6_3_wrapper(
- BB_ENC0,_BL1_5_,_BR1_5_,BB_ENC1,
- _BL2_1_,_BL2_5_,_BR2_5_,_BR2_1_,
- _BL3_1_,_BL3_5_,_BR3_5_,_BR3_1_,
- _BL4_3_,_BR4_3_
- ),
- [_CHAR] = LAYOUT_split_3x6_3_wrapper(
- _______,_CL1_5_,_CR1_5_,_______,
- XXXXXXX,_CL2_5_,_CR2_5_,XXXXXXX,
- XXXXXXX,_CL3_5_,_CR3_5_,XXXXXXX,
- _CL4_3_,_CR4_3_
- ),
- [_GAME] = LAYOUT_split_3x6_3_wrapper(
- _______,_GA1_5_,___6___,
- _GA2_1_,_GA2_5_,___6___,
- _GA3_1_,_GA3_5_,___6___,
- _GA4_3_,___3___
- ),
- [_MEDI] = LAYOUT_split_3x6_3_wrapper(
- ___6___,_ME1_5_,_______,
- ___6___,_ME2_5_,xxx1xxx,
- ___6___,_ME3_5_,xxx1xxx,
- ___3___,_ME4_3_
- ),
- [_NAVI] = LAYOUT_split_3x6_3_wrapper(
- ___6___,_NA1_5_,_______,
- ___6___,_NA2_5_,xxx1xxx,
- ___6___,_NA3_5_,xxx1xxx,
- ___3___,_NA4_3_
- ),
- [_SYMB] = LAYOUT_split_3x6_3_wrapper(
- ___6___,_SY1_5_,_______,
- ___6___,_SY2_5_,xxx1xxx,
- ___6___,_SY3_5_,xxx1xxx,
- ___3___,_SY4_3_
- ),
- [_NUMB] = LAYOUT_split_3x6_3_wrapper(
- _______,_NU1_5_,___6___,
- xxx1xxx,_NU2_5_,___6___,
- xxx1xxx,_NU3_5_,___6___,
- _NU4_3_,___3___
- ),
- [_FUNC] = LAYOUT_split_3x6_3_wrapper(
- _______,_FU1_5_,___6___,
- xxx1xxx,_FU2_5_,___6___,
- xxx1xxx,_FU3_5_,___6___,
- _FU4_3_,___3___
- ),
- [_MOUS] = LAYOUT_split_3x6_3_wrapper(
- _______,_MO1_5_,___6___,
- xxx1xxx,_MO2_5_,___6___,
- xxx1xxx,_MO3_5_,___6___,
- _MO4_3_,___3___
- ),
- [_MUSI] = LAYOUT_split_3x6_3_wrapper(
- _MU_12_,
- _MU_12_,
- _MU_12_,
- _MUL_3_,_MUR_3_
- )
-};
-
-// crkbd
-#ifdef KEYBOARD_crkbd_rev1
-#ifdef AUDIO_ENABLE
-const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_split_3x6_3(
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 0, 0, 0, 0, 0, 0
-);
-#endif // AUDIO_ENABLE
-void keyboard_pre_init_keymap(void) {
-# ifdef AUDIO_ENABLE
- //thank you to @sigprof for this
- // Set audio pins to analog mode
- palSetLineMode(A5, PAL_MODE_INPUT_ANALOG);
- palSetLineMode(B1, PAL_MODE_INPUT_ANALOG);
-# endif // AUDIO_ENABLE
-# ifdef RGB_MATRIX_ENABLE
- // Led locations are different on protorne; need to be fixed
- g_led_config = (led_config_t) { {
- // Logical Layout
- // 0 1 2 3 4 5 COLS
- // -LEFT ROWS
- // 16 17 18 19 20 21 0
- // 15 14 13 12 11 10 1
- // 04 05 06 07 08 09 2
- // 03 02 01 3
- // -Right
- // 21 20 19 18 17 16 4
- // 10 11 12 13 14 15 5
- // 09 08 07 06 05 04 6
- // 01 02 03 7
- { 15, 16, 17, 18, 19, 20},
- { 14, 13, 12, 11, 10, 9 },
- { 3, 4, 5, 6, 7, 8 },
- { NO_LED, NO_LED, NO_LED, 2, 1, 0 },
- { 47, 46, 45, 44, 43, 42 },
- { 36, 37, 38, 39, 40, 41 },
- { 35, 34, 33, 32, 31, 30 },
- { NO_LED, NO_LED, NO_LED, 27, 28, 29 }
- }, {
- // Physical Layout
- // LEFT RIGHT
- // 16 17 18 19 20 21 16 17 18 19 20 21
- // 24 23 22 24 23 22
- // 15 14 13 12 11 10 15 14 13 12 11 10
- // 25 27
- // 04 05 06 07 08 09 04 05 06 07 08 09
- // 26 27 25 26
- // 03 02 01 03 02 01
- { 95, 63 }, { 80, 58 }, { 60, 55 },
- { 0, 41 }, { 16, 42 }, { 33, 37 }, { 50, 35 }, { 68, 37 }, { 85, 39 },
- { 85, 21 }, { 68, 19 }, { 50, 13 }, { 33, 20 }, { 16, 24 }, { 0, 24 },
- { 0, 7 }, { 16, 7 }, { 33, 3 }, { 50, 0 }, { 68, 2 }, { 85, 4 },
- { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 },
- { 164, 55 }, { 144, 58 }, { 129, 63 },
- { 139, 39 }, { 156, 37 }, { 174, 35 }, { 191, 37 }, { 208, 42 }, { 224, 41 },
- { 224, 24 }, { 208, 24 }, { 191, 20 }, { 174, 13 }, { 156, 19 }, { 139, 21 },
- { 139, 4 }, { 156, 2 }, { 174, 0 }, { 191, 3 }, { 208, 7 }, { 224, 7 },
- { 208, 20 }, { 174, 13 }, { 139, 16 }, { 139, 52 }, { 174, 48 }, { 208, 38 }
- }, {
- // (x---)8 stands for indicator
- // (-x--)4 stands for per-key led
- // (--x-)2 stands for underglow led
- // (---1)1 stands for modifier key
- 12, 12, 12,
- 4, 4, 5, 4, 4, 4,
- 4, 5, 5, 5, 5, 4,
- 4, 4, 4, 4, 4, 4,
- 10, 10, 10, 10, 10, 10,
- 12, 12, 12,
- 4, 4, 4, 5, 4, 4,
- 4, 5, 5, 5, 5, 4,
- 4, 4, 4, 4, 4, 4,
- 10, 10, 10, 10, 10, 10
- } };
-# endif // RGB_MATRIX_ENABLE
-}
-
-// Enable OPAMP1 as A5 → B1 follower
-#ifdef AUDIO_ENABLE
-void keyboard_post_init_keymap(void) {
- OPAMP3->CSR = OPAMP3_CSR_VMSEL_1 | OPAMP3_CSR_VMSEL_0 | OPAMP3_CSR_VPSEL_0 | OPAMP3_CSR_OPAMP3EN;
-}
-#endif // AUDIO_ENABLE
-
-#ifdef OLED_ENABLE
-// Flip the display on the right half
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_left()) {
- return OLED_ROTATION_180;
- }
- return rotation;
-}
-
-bool oled_task_keymap(void) {
- if (is_keyboard_left()) {
- render_status_left(0, 0);
- } else {
- render_status_right(0, 0);
- }
- return false;
-}
-#endif // OLED_ENABLE
-#endif // KEYBOARD_crkbd_rev1
diff --git a/layouts/community/split_3x6_3/bbaserdem/mcuconf.h b/layouts/community/split_3x6_3/bbaserdem/mcuconf.h
deleted file mode 100644
index bde80b316f..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/mcuconf.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-
-#ifdef KEYBOARD_crkbd_rev1
-# include_next <mcuconf.h>
-# undef STM32_PWM_USE_TIM3
-# define STM32_PWM_USE_TIM3 TRUE
-# undef STM32_SERIAL_USE_USART1
-# define STM32_SERIAL_USE_USART1 TRUE
-#endif
diff --git a/layouts/community/split_3x6_3/bbaserdem/readme.md b/layouts/community/split_3x6_3/bbaserdem/readme.md
deleted file mode 100644
index c3dea2882f..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-This folder contains my [split\_3x6\_3](../../../default/split_3x6_3) board layouts
-Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info.
-
-# Crkbd
-
-Using [this](https://github.com/ItsWaffIe/waffle_corne) Proton-C compatible PCB.
-
-Applying the similar keymap to [@waffle](https://github.com/ItsWaffIe/waffle_corne);
-using their `crkbd:rev1:arm` build.
-
-## Build
-
-Build commands;
-
-* For ARM: `CFLAGS="-Wno-error=deprecated" qmk flash -kb crkdb/rev1 -km bbaserdem -bl dfu-util-split-{left,right}`
diff --git a/layouts/community/split_3x6_3/bbaserdem/rules.mk b/layouts/community/split_3x6_3/bbaserdem/rules.mk
deleted file mode 100644
index 09619936da..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/rules.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2021 Batuhan Başerdem
-# <baserdem.batuhan@gmail.com> @bbaserdem
-#
-# 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/>.
-
-# Corne keyboard; with ARM
-ifneq (,$(findstring crkbd/rev1,$(KEYBOARD)))
- # Proton C conversion
- MCU = STM32F303
- CTPC = yes
- # BOARD = QMK_PROTON_C
- # BOOTLOADER = stm32-dfu
- # My usual features
- AUDIO_ENABLE = yes
- BACKLIGHT_ENABLE = no
- ENCODER_ENABLE = yes
- RGB_MATRIX_ENABLE = yes
- OLED_ENABLE = yes
- # Features that take otherwise too much space
- WPM_ENABLE = yes
- NKRO_ENABLE = yes
- # Config
- SERIAL_DRIVER = usart
- WS2812_DRIVER = pwm
- AUDIO_DRIVER = dac_basic
- SPLIT_KEYBOARD = yes
- # These are from waffle
- DEBUG_MATRIX_SCAN_RATE_ENABLE = no # output matrix scan rate in qmk console/qmk toolbox
- QUANTUM_LIB_SRC += i2c_master.c #drivers/chibios/i2cmaster.h needs patch - see lines 27/28
- VIA_ENABLE = no
- # COMMAND_ENABLE = no
- # CONSOLE_ENABLE = no
- # BOOTMAGIC_ENABLE = lite
- # LTO_ENABLE = yes
- # PIMORONI_TRACKBALL = no
-endif
diff --git a/layouts/community/split_3x6_3/bbaserdem/ssd1306.c b/layouts/community/split_3x6_3/bbaserdem/ssd1306.c
deleted file mode 100644
index 4983248555..0000000000
--- a/layouts/community/split_3x6_3/bbaserdem/ssd1306.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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/>.
- */
diff --git a/users/bbaserdem/.gitignore b/users/bbaserdem/.gitignore
deleted file mode 100644
index 57bd0e43b4..0000000000
--- a/users/bbaserdem/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/secrets.h
-/secrets.c
diff --git a/users/bbaserdem/bb-audio.c b/users/bbaserdem/bb-audio.c
deleted file mode 100644
index eef0cdf2f6..0000000000
--- a/users/bbaserdem/bb-audio.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-audio.h"
-/* AUDIO
- * This contains some audio related stuff.
- * There is no need to wrap this up with preprocessor commands;
- * This is only called if audio is enabled
- */
-
-float tone_game_intro[][2] = GAME_ON_SONG;
-float tone_game_outro[][2] = GAME_OFF_SONG;
-
-// Audio playing when layer changes
-layer_state_t layer_state_set_audio(layer_state_t state) {
- // Get this layer
- static bool prev_game = false;
-
- // If entering the game layer; play the intro sound
- if (layer_state_cmp(state, _GAME) && (!prev_game)) {
- stop_all_notes();
- PLAY_SONG(tone_game_intro);
- prev_game = true;
- }
- // If exiting the game layer; play the outro sound
- if ((!layer_state_cmp(state, _GAME)) && prev_game) {
- stop_all_notes();
- PLAY_SONG(tone_game_outro);
- prev_game = false;
- }
- return state;
-}
-
-// Audio layer switch; add the music layer on top of this
-bool process_record_audio(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MU_TOG:
- if (!record->event.pressed) {
- // On release, exit music mode if enabled
- if (layer_state_is(_MUSI)) {
- layer_off(_MUSI);
- // If not enabled; turn off all layers and load music layer
- } else {
- layer_clear();
- layer_on(_MUSI);
- }
- }
- return true;
- break;
- case MU_ON:
- if (!record->event.pressed) {
- // On release, enter music mode
- layer_clear();
- layer_on(_MUSI);
- }
- return true;
- break;
- case MU_OFF:
- if (!record->event.pressed) {
- // On release, exit music mode
- layer_off(_MUSI);
- }
- return true;
- break;
- }
- return true;
-}
diff --git a/users/bbaserdem/bb-audio.h b/users/bbaserdem/bb-audio.h
deleted file mode 100644
index 351061ab9a..0000000000
--- a/users/bbaserdem/bb-audio.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-/* AUDIO
- * Some functions to hook to some modes
- */
-
-// Hook to layer change effects
-layer_state_t layer_state_set_audio(layer_state_t state);
-
-// Hook to audio keycodes
-bool process_record_audio(uint16_t keycode, keyrecord_t *record);
diff --git a/users/bbaserdem/bb-backlight.c b/users/bbaserdem/bb-backlight.c
deleted file mode 100644
index 5eca1f2c11..0000000000
--- a/users/bbaserdem/bb-backlight.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-backlight.h"
-/* Replaced functions with noeeprom varieties; I don't need retention across
- * booting.
- */
-
-// Backlight LEDs
-void keyboard_post_init_backlight(void) {
- backlight_enable();
- backlight_level(2);
-# ifdef BACKLIGHT_BREATHING
- breathing_enable();
-# endif // BACKLIGHT_BREATHING
-}
diff --git a/users/bbaserdem/bb-backlight.h b/users/bbaserdem/bb-backlight.h
deleted file mode 100644
index 3af3137d9a..0000000000
--- a/users/bbaserdem/bb-backlight.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-/* Hooks for backlight definitions
- */
-
-void keyboard_post_init_backlight(void);
diff --git a/users/bbaserdem/bb-encoder.c b/users/bbaserdem/bb-encoder.c
deleted file mode 100644
index eea9751051..0000000000
--- a/users/bbaserdem/bb-encoder.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-encoder.h"
-
-// Need this to call velocikey activation
-#ifdef VELOCIKEY_ENABLE
-# include "velocikey.h"
-#endif // VELOCIKEY_ENABLE
-// Need memcpy and memcmp from string.h along with transfer stuff
-#ifdef OLED_ENABLE
-# include <string.h>
-#endif // OLED_ENABLE
-
-/* ROTARY ENCODER
- * This contains my general rotary encoder code
- * Encoders each have a list of different modes they can be in.
- * Each mode also have an on click action as well.
- * Modes can be cycled using either shift-click or ctrl-click
- * Modes can be reset using OS click
- * Some modes are only accessible through some keymap layers
- */
-
-// Default state for the encoders
-void reset_encoder_state(void) {
- userspace_config.e0base = 0;
- userspace_config.e0point = 0;
- userspace_config.e0rgb = 0;
- userspace_config.e1base = 1;
- userspace_config.e1point = 1;
- userspace_config.e1rgb = 1;
-}
-
-// Encoder scroll functionality
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t this_number;
- // Differentiate layer roles
- switch (get_highest_layer(layer_state)) {
-# ifdef RGB_MATRIX_ENABLE
- case _MEDI:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0rgb;
- } else if (index == 1) {
- this_number = userspace_config.e1rgb;
- } else {
- this_number = 128;
- }
- switch(this_number) {
- case 0: // Effect the RGB mode
- if (clockwise) {
- rgb_matrix_step_noeeprom();
- } else {
- rgb_matrix_step_reverse_noeeprom();
- }
- break;
- case 1: // Effect the RGB hue
- if (clockwise) {
- rgb_matrix_increase_hue_noeeprom();
- } else {
- rgb_matrix_decrease_hue_noeeprom();
- }
- break;
- case 2: // Effect the RGB saturation
- if (clockwise) {
- rgb_matrix_increase_sat_noeeprom();
- } else {
- rgb_matrix_decrease_sat_noeeprom();
- }
- break;
- case 3: // Effect the RGB brightness
- if (clockwise) {
- rgb_matrix_increase_val_noeeprom();
- } else {
- rgb_matrix_decrease_val_noeeprom();
- }
- break;
- case 4: // Effect the RGB effect speed
- if (clockwise) {
- rgb_matrix_increase_speed_noeeprom();
- } else {
- rgb_matrix_decrease_speed_noeeprom();
- }
- break;
- }
- break;
-# endif // RGB_MATRIX_ENABLE
-# ifdef MOUSEKEY_ENABLE
- case _MOUS:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0point;
- } else if (index == 1) {
- this_number = userspace_config.e1point;
- } else {
- this_number = 128;
- }
- switch(this_number) {
- case 0: // Move mouse on horizontal axis
- if (clockwise) {
- tap_code(KC_MS_R);
- } else {
- tap_code(KC_MS_L);
- }
- break;
- case 1: // Move mouse on vertical axis
- if (clockwise) {
- tap_code(KC_MS_D);
- } else {
- tap_code(KC_MS_U);
- }
- break;
- case 2: // Move mouse wheel on vertical axis
- if (clockwise) {
- tap_code(KC_WH_D);
- } else {
- tap_code(KC_WH_U);
- }
- break;
- case 3: // Move mouse on horizontal axis
- if (clockwise) {
- tap_code(KC_WH_R);
- } else {
- tap_code(KC_WH_L);
- }
- break;
- }
- break;
-# endif // MOUSEKEY_ENABLE
- default:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0base;
- } else if (index == 1) {
- this_number = userspace_config.e1base;
- } else {
- this_number = 128;
- }
- switch(this_number) {
- case 0: // Volume
- if (clockwise) {
- tap_code16(KC_VOLU);
- } else {
- tap_code16(KC_VOLD);
- }
- break;
- case 1: // Song change
- if (clockwise) {
- tap_code16(KC_MNXT);
- } else {
- tap_code16(KC_MPRV);
- }
- break;
- case 2: // Move to audio sink
- if (clockwise) {
- tap_code16(KC_F13);
- } else {
- tap_code16(S(KC_F13));
- }
- break;
- case 3: // Volume of source
- if (clockwise) {
- tap_code16(S(KC_VOLU));
- } else {
- tap_code16(C(KC_VOLD));
- }
- break;
- case 4: // Move to audio source
- if (clockwise) {
- tap_code16(C(KC_F13));
- } else {
- tap_code16(C(S(KC_F13)));
- }
- break;
- case 5: // Left-right
- if (clockwise) {
- tap_code16(KC_RGHT);
- } else {
- tap_code16(KC_LEFT);
- }
- break;
- case 6: // Up-down
- if (clockwise) {
- tap_code16(KC_DOWN);
- } else {
- tap_code16(KC_UP);
- }
- break;
- case 7: // Page Up-down
- if (clockwise) {
- tap_code16(KC_PGDN);
- } else {
- tap_code16(KC_PGUP);
- }
- break;
- case 8: // Delete
- if (clockwise) {
- tap_code16(KC_DEL);
- } else {
- tap_code16(KC_BSPC);
- }
- break;
- }
- break;
- }
- return false;
-}
-
-void encoder_click_action(uint8_t index) {
- uint8_t this_number;
- // Differentiate layer roles
- switch (get_highest_layer(layer_state)) {
-# ifdef RGB_MATRIX_ENABLE
- case _MEDI:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0rgb;
- } else if (index == 1) {
- this_number = userspace_config.e1rgb;
- } else {
- this_number = 128;
- }
- switch(this_number) {
- case 0: // Return to no animation
- rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
- break;
- case 1:
- case 2:
- case 3: // Toggle
- rgb_matrix_increase_val_noeeprom();
- break;
- case 4: // Toggle velocikey
-# ifdef VELOCIKEY_ENABLE
- velocikey_toggle();
-# endif // VELOCIKEY_ENABLE
- break;
- }
- break;
-# endif // RGB_MATRIX_ENABLE
-# ifdef MOUSEKEY_ENABLE
- case _MOUS:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0point;
- } else if (index == 1) {
- this_number = userspace_config.e1point;
- } else {
- this_number = 128;
- }
- switch(this_number) {
- case 0: // Left click
- tap_code16(KC_BTN1);
- break;
- case 1: // Right click
- tap_code16(KC_BTN2);
- break;
- case 2:
- case 3: // Middle click
- tap_code16(KC_BTN2);
- break;
- }
- break;
-# endif // MOUSEKEY_ENABLE
- default:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0base;
- } else if (index == 1) {
- this_number = userspace_config.e1base;
- } else {
- this_number = 128;
- }
- switch(this_number) {
- case 0: // Toggle mute
- case 2:
- tap_code16(KC_MUTE);
- break;
- case 1: // Pause
- tap_code16(KC_MPLY);
- break;
- case 3: // Mute source
- case 4:
- tap_code16(A(KC_MUTE));
- break;
- case 5: // Insert
- tap_code16(KC_INS);
- break;
- case 6: // Capslock
- tap_code16(KC_CAPS);
- break;
- case 7: // Redo
- tap_code16(BB_REDO);
- break;
- case 8: // Undo
- tap_code16(BB_UNDO);
- break;
- }
- break;
- }
-}
-
-bool process_record_encoder(uint16_t keycode, keyrecord_t *record) {
- // Check if and which encoder
- int encoder_index = -1;
-
- // Get the pressed encoder
- switch (keycode) {
- case BB_ENC0:
- encoder_index = 0;
- break;
- case BB_ENC1:
- encoder_index = 1;
- break;
- }
-
- // Activate encoder function of button
- if ((encoder_index >= 0) & (!record->event.pressed)) {
- // If shifted, move mode one point forward
- if (get_mods() & MOD_MASK_SHIFT) {
- switch (get_highest_layer(layer_state)) {
-# ifdef RGB_MATRIX_ENABLE
- case _MEDI:
- if (encoder_index == 0) {
- userspace_config.e0rgb = (userspace_config.e0rgb + 1) % 5;
- } else {
- userspace_config.e1rgb = (userspace_config.e1rgb + 1) % 5;
- }
- break;
-# endif // RGB_MATRIX_ENABLE
-# ifdef MOUSEKEY_ENABLE
- case _MOUS:
- if (encoder_index == 0) {
- userspace_config.e0point = (userspace_config.e0point + 1) % 4;
- } else {
- userspace_config.e1point = (userspace_config.e1point + 1) % 4;
- }
- break;
-# endif // MOUSEKEY_ENABLE
- default:
- if (encoder_index == 0) {
- userspace_config.e0base = (userspace_config.e0base + 1) % 9;
- } else {
- userspace_config.e1base = (userspace_config.e1base + 1) % 9;
- }
- break;
- }
- // If ctrl is active, move mode one point backwards
- } else if (get_mods() & MOD_MASK_CTRL) {
- switch (get_highest_layer(layer_state)) {
-# ifdef RGB_MATRIX_ENABLE
- case _MEDI:
- if (encoder_index == 0) {
- userspace_config.e0rgb = (userspace_config.e0rgb + 5 - 1) % 5;
- } else {
- userspace_config.e1rgb = (userspace_config.e1rgb + 5 - 1) % 5;
- }
- break;
-# endif // RGB_MATRIX_ENABLE
-# ifdef MOUSEKEY_ENABLE
- case _MOUS:
- if (encoder_index == 0) {
- userspace_config.e0point = (userspace_config.e0point + 4 - 1) % 4;
- } else {
- userspace_config.e1point = (userspace_config.e1point + 4 - 1) % 4;
- }
- break;
-# endif // MOUSEKEY_ENABLE
- default:
- if (encoder_index == 0) {
- userspace_config.e0base = (userspace_config.e0base + 9 - 1) % 9;
- } else {
- userspace_config.e1base = (userspace_config.e1base + 9 - 1) % 9;
- }
- break;
- }
- // If meta is active, reset the encoder states
- } else if (get_mods() & MOD_MASK_GUI) {
- reset_encoder_state();
- eeconfig_update_user(userspace_config.raw);
- // If nothing else; just perform the click action
- } else {
- encoder_click_action(encoder_index);
- }
- }
- return true;
-}
-
-// For printing status to OLED
-#ifdef OLED_ENABLE
-void encoder_state_string(uint8_t index, uint8_t layer, char* buffer) {
- uint8_t this_number;
- // Get the layer straight from the main function
- switch (layer) {
- // If RGB control mode is enabled
-# ifdef RGB_MATRIX_ENABLE
- case _MEDI:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0rgb;
- } else if (index == 1) {
- this_number = userspace_config.e1rgb;
- } else {
- this_number = 128;
- }
- switch (this_number) {
- case 0:
- strcpy(buffer, "ani mode");
- break;
- case 1:
- strcpy(buffer, "hue ");
- break;
- case 2:
- strcpy(buffer, "saturat.");
- break;
- case 3:
- strcpy(buffer, "bright. ");
- break;
- case 4:
- strcpy(buffer, "ani. spd");
- break;
- default:
- strcpy(buffer, " -N/A- ");
- break;
- }
- break;
-# endif // RGB_MATRIX_ENABLE
- // If pointer control is enabled
-# ifdef MOUSEKEY_ENABLE
- case _MOUS:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0point;
- } else if (index == 1) {
- this_number = userspace_config.e1point;
- } else {
- this_number = 128;
- }
- switch (this_number) {
- case 0:
- strcpy(buffer, "Lateral ");
- break;
- case 1:
- strcpy(buffer, "Vertical");
- break;
- case 2:
- strcpy(buffer, "Scr. Ver");
- break;
- case 3:
- strcpy(buffer, "Scr. Lat");
- break;
- default:
- strcpy(buffer, " -N/A- ");
- break;
- }
- break;
-# endif // MOUSEKEY_ENABLE
- default:
- // Get correct index
- if (index == 0) {
- this_number = userspace_config.e0base;
- } else if (index == 1) {
- this_number = userspace_config.e1base;
- } else {
- this_number = 128;
- }
- switch (this_number) {
- case 0:
- strcpy(buffer, "Volume ");
- break;
- case 1:
- strcpy(buffer, "Song ");
- break;
- case 2:
- strcpy(buffer, "Sink ");
- break;
- case 3:
- strcpy(buffer, "Src. Vol");
- break;
- case 4:
- strcpy(buffer, "Source ");
- break;
- case 5:
- strcpy(buffer, "Arrow LR");
- break;
- case 6:
- strcpy(buffer, "Arrow UD");
- break;
- case 7:
- strcpy(buffer, "Page U/D");
- break;
- case 8:
- strcpy(buffer, "Erase ");
- break;
- default:
- strcpy(buffer, " -N/A- ");
- break;
- }
- break;
- }
-}
-#endif // OLED_ENABLE
diff --git a/users/bbaserdem/bb-encoder.h b/users/bbaserdem/bb-encoder.h
deleted file mode 100644
index dce08cd3d5..0000000000
--- a/users/bbaserdem/bb-encoder.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-// Hook to encoder stuff
-bool encoder_update_user(uint8_t index, bool clockwise);
-// Complicated code for what the encoder keys do when pressed
-bool process_record_encoder(uint16_t keycode, keyrecord_t *record);
-// Clear the encoder settings
-void reset_encoder_state(void);
-// This is so that encoder state is synched between two halves
-void housekeeping_task_encoder(void);
-// This is purely for oled; should it want to use it
-void encoder_state_string(uint8_t index, uint8_t layer, char* buffer);
diff --git a/users/bbaserdem/bb-macro.c b/users/bbaserdem/bb-macro.c
deleted file mode 100644
index 6a722e6db1..0000000000
--- a/users/bbaserdem/bb-macro.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-macro.h"
-
-/* MACRO Definitions
- * This file has my macros/unicodes
- * Hooks for other functionality to inject itself into the process_record
- */
-
-// Tap dance definitons
-#ifdef AUDIO_ENABLE
-#ifdef TAP_DANCE_ENABLE
-qk_tap_dance_action_t tap_dance_actions[] = {
- // Music playback speed modulator
- [TD_AUDIO_TEMPO] = ACTION_TAP_DANCE_DOUBLE(MU_SLOW, MU_FAST),
-};
-#endif // AUDIO_ENABLE
-#endif // TAP_DANCE_ENABLE
-
-// Unicode definitions; for single character keys
-// We mask their definitions if unicode is not enabled
-#ifdef UNICODEMAP_ENABLE
-const uint32_t PROGMEM unicode_map[] = {
- [UPC_A_CIRC] = 0x00C2, [LOW_A_CIRC] = 0x00E2, // Â â
- [UPC_C_CEDI] = 0x00C7, [LOW_C_CEDI] = 0x00E7, // Ç ç
- [UPC_G_BREV] = 0x011E, [LOW_G_BREV] = 0x001F, // Ğ ğ
- [UPC_I_CIRC] = 0x00CE, [LOW_I_CIRC] = 0x00EE, // Î î
- [UPC_I_DOTL] = 0x0049, [LOW_I_DOTL] = 0x0131, // I ı
- [UPC_I_DOTT] = 0x0130, [LOW_I_DOTT] = 0x0069, // İ i
- [UPC_O_DIAE] = 0x00D6, [LOW_O_DIAE] = 0x00F6, // Ö ö
- [UPC_S_CEDI] = 0x015E, [LOW_S_CEDI] = 0x015F, // Ş ş
- [UPC_U_CIRC] = 0x00DB, [LOW_U_CIRC] = 0x00FB, // Û û
- [UPC_U_DIAE] = 0x00DC, [LOW_U_DIAE] = 0x00FC, // Ü ü
- [UPC_ALPHA] = 0x0391, [LOW_ALPHA] = 0x03B1, // Α α
- [UPC_BETA] = 0x0392, [LOW_BETA] = 0x03B2, // Β β
- [UPC_GAMMA] = 0x0393, [LOW_GAMMA] = 0x03B3, // Γ γ
- [UPC_DELTA] = 0x0394, [LOW_DELTA] = 0x03B4, // Δ δ
- [UPC_EPSILON] = 0x0395, [LOW_EPSILON] = 0x03B5, // Ε ε
- [UPC_ZETA] = 0x0396, [LOW_ZETA] = 0x03B6, // Ζ ζ
- [UPC_ETA] = 0x0397, [LOW_ETA] = 0x03B7, // Η η
- [UPC_THETA] = 0x0398, [LOW_THETA] = 0x03B8, // Θ θ
- [UPC_IOTA] = 0x0399, [LOW_IOTA] = 0x03B9, // Ι ι
- [UPC_KAPPA] = 0x039A, [LOW_KAPPA] = 0x03BA, // Κ κ
- [UPC_LAMBDA] = 0x039B, [LOW_LAMBDA] = 0x03BB, // Λ λ
- [UPC_MU] = 0x039C, [LOW_MU] = 0x03BC, // Μ μ
- [UPC_NU] = 0x039D, [LOW_NU] = 0x03BD, // Ν ν
- [UPC_XI] = 0x039E, [LOW_XI] = 0x03BE, // Ξ ξ
- [UPC_OMICRON] = 0x039F, [LOW_OMICRON] = 0x03BF, // Ο ο
- [UPC_PI] = 0x03A0, [LOW_PI] = 0x03C0, // Π π
- [UPC_RHO] = 0x03A1, [LOW_RHO] = 0x03C1, // Ρ ρ
- [UPC_SIGMA] = 0x03A3, [LOW_SIGMA] = 0x03C3, // Σ σ
- [UPC_TAU] = 0x03A4, [LOW_TAU] = 0x03C4, // Τ τ
- [UPC_UPSILON] = 0x03A5, [LOW_UPSILON] = 0x03C5, // Υ υ
- [UPC_PHI] = 0x03A6, [LOW_PHI] = 0x03C6, // Φ φ
- [UPC_CHI] = 0x03A7, [LOW_CHI] = 0x03C7, // Χ χ
- [UPC_PSI] = 0x03A8, [LOW_PSI] = 0x03C8, // Ψ ψ
- [UPC_OMEGA] = 0x03A9, [LOW_OMEGA] = 0x03C9, // Ω ω
- [ELLIPSIS] = 0x2026, // …
- [PLANCK_CON] = 0x210F, // ℏ
- [ANGSTROM] = 0x212B, // Å
- [BITCOIN] = 0x20BF // ₿
-};
-#endif // UNICODEMAP_ENABLE
-
-// Keycodes
-bool process_record_macro(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // AltGr + Caps should change the oled layout variable
- case KC_CAPS_LOCK:
- if (record->event.pressed) {
- if (get_mods() & MOD_BIT(KC_RALT)) {
- userspace_config.layout = (userspace_config.layout + 1) % 3;
- }
- }
- return true;
- break;
- case BB_OLED:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_SHIFT) {
- // Scroll in opposite direction
- userspace_config.layout = (userspace_config.layout + 4) % 3;
- } else {
- userspace_config.layout = (userspace_config.layout + 1) % 3;
- }
- }
- return false;
- break;
- // Plain macros
- case BB_PGPK:
- // My public PGP key
- if (record->event.pressed) {
- SEND_STRING("0B7151C823559DD8A7A04CE36426139E2F4C6CCE");
- }
- return false; break;
- case DBL_ANG:
- // Double angular bracket
- if (record->event.pressed) {
- SEND_STRING("<>"SS_TAP(X_LEFT));
- }
- return false; break;
- case DBL_PAR:
- // Double paranthesis
- if (record->event.pressed) {
- SEND_STRING("()"SS_TAP(X_LEFT));
- }
- return false; break;
- case DBL_BRC:
- // Double square brackets
- if (record->event.pressed) {
- SEND_STRING("[]"SS_TAP(X_LEFT));
- }
- return false; break;
- case DBL_CBR:
- // Double curly brackets
- if (record->event.pressed) {
- SEND_STRING("{}"SS_TAP(X_LEFT));
- }
- return false; break;
- // Unicode macros
-# ifdef UNICODEMAP_ENABLE
- case TR_FLAG:
- // Turkish flag
- if (record->event.pressed) {
- send_unicode_string("🇹🇷");
- }
- return false; break;
- case BB_LENY:
- // Lenny face: ( ͡° ͜ʖ ͡°)
- if (record->event.pressed) {
- send_unicode_string("( ͡° ͜ʖ ͡°)");
- }
- return false; break;
- case BB_TABL:
- // Table flip: ┻━┻︵ \(°□°)/ ︵ ┻━┻
- if (record->event.pressed) {
- send_unicode_string("┻━┻︵ \\(°□°)/ ︵ ┻━┻");
- }
- return false; break;
-# endif // UNICODEMAP_ENABLE
- }
- return true;
-}
diff --git a/users/bbaserdem/bb-macro.h b/users/bbaserdem/bb-macro.h
deleted file mode 100644
index 3dc14e7a8a..0000000000
--- a/users/bbaserdem/bb-macro.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-/* This header file contains definitons regarding custom keycodes.
- * - Both regular and unicode macros are dealt with in this file
- */
-
-// These will be delegated to keymap specific stuff (weak definition)
-bool process_record_macro(uint16_t keycode, keyrecord_t *record);
-
-// Unicodemap implementation
-#ifdef UNICODEMAP_ENABLE
-enum userspace_unicodemap {
- UPC_A_CIRC,
- UPC_C_CEDI,
- UPC_G_BREV,
- UPC_I_CIRC,
- UPC_I_DOTL,
- UPC_I_DOTT,
- UPC_O_DIAE,
- UPC_S_CEDI,
- UPC_U_CIRC,
- UPC_U_DIAE,
- LOW_A_CIRC,
- LOW_C_CEDI,
- LOW_G_BREV,
- LOW_I_CIRC,
- LOW_I_DOTL,
- LOW_I_DOTT,
- LOW_O_DIAE,
- LOW_S_CEDI,
- LOW_U_CIRC,
- LOW_U_DIAE,
- ELLIPSIS,
- PLANCK_CON,
- ANGSTROM,
- MATHPI,
- BITCOIN,
- UPC_ALPHA,
- UPC_BETA,
- UPC_GAMMA,
- UPC_DELTA,
- UPC_EPSILON,
- UPC_ZETA,
- UPC_ETA,
- UPC_THETA,
- UPC_IOTA,
- UPC_KAPPA,
- UPC_LAMBDA,
- UPC_MU,
- UPC_NU,
- UPC_XI,
- UPC_OMICRON,
- UPC_PI,
- UPC_RHO,
- UPC_SIGMA,
- UPC_TAU,
- UPC_UPSILON,
- UPC_PHI,
- UPC_CHI,
- UPC_PSI,
- UPC_OMEGA,
- LOW_ALPHA,
- LOW_BETA,
- LOW_GAMMA,
- LOW_DELTA,
- LOW_EPSILON,
- LOW_ZETA,
- LOW_ETA,
- LOW_THETA,
- LOW_IOTA,
- LOW_KAPPA,
- LOW_LAMBDA,
- LOW_MU,
- LOW_NU,
- LOW_XI,
- LOW_OMICRON,
- LOW_PI,
- LOW_RHO,
- LOW_SIGMA,
- LOW_TAU,
- LOW_UPSILON,
- LOW_PHI,
- LOW_CHI,
- LOW_PSI,
- LOW_OMEGA,
-};
-#endif // UNICODEMAP_ENABLE
-
-// Tap dance stuff
-#ifdef AUDIO_ENABLE
-#ifdef TAP_DANCE_ENABLE
-enum {
- TD_AUDIO_TEMPO,
-};
-#endif // AUDIO_ENABLE
-#endif // TAP_DANCE_ENABLE
diff --git a/users/bbaserdem/bb-oled-extra.c b/users/bbaserdem/bb-oled-extra.c
deleted file mode 100644
index b52c4b335a..0000000000
--- a/users/bbaserdem/bb-oled-extra.c
+++ /dev/null
@@ -1,796 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-oled.h"
-#include "bb-oled-extra.h"
-
-// Helper function that draws images
-void draw_image(uint8_t row, uint8_t col, const char image[4][42]) {
- // Draw this image iteratively
- for (int i = 0; i < 4; i++) {
- oled_set_cursor(col, row + i);
- oled_write_raw_P(image[i], 42);
- }
-}
-
-// Write modifiers to the screen
-void render_modifiers(uint8_t row, uint8_t col, uint8_t mods) {
- static const char PROGMEM mod_meta[12] = {0x00,0x01,0x01,0x01,0x01,0x06,0x18,0x60,0x81,0x81,0x81,0x81};
- static const char PROGMEM mod_altL[12] = {0x00,0x80,0x80,0x80,0x40,0x20,0x10,0x08,0x84,0x95,0x8e,0x84};
- static const char PROGMEM mod_altR[12] = {0x00,0x86,0x8f,0x8f,0x46,0x20,0x10,0x08,0x84,0x95,0x8e,0x84};
- static const char PROGMEM mod_ctrl[12] = {0x00,0x00,0xbd,0x42,0xa5,0x99,0x99,0xa5,0x42,0xbd,0x00,0x00};
- static const char PROGMEM mod_shft[12] = {0x00,0x20,0x30,0x28,0xe4,0x02,0x01,0x02,0xe4,0x28,0x30,0x20};
- // Looks like Mods: <OS> <Alt/Gr> <Ctrl> <Shift>
- oled_set_cursor(col, row);
- oled_write("Mods: ", false);
- // Meta
- if (mods & MOD_MASK_GUI) {
- oled_write_raw_P(mod_meta, 12);
- oled_set_cursor(col + 8, row);
- } else {
- oled_write(" ", false);
- }
- // Alt(Gr)
- if (mods & MOD_BIT(KC_RALT)) {
- oled_write_raw_P(mod_altR, 12);
- oled_set_cursor(col + 10, row);
- } else if (mods & MOD_MASK_ALT) {
- oled_write_raw_P(mod_altL, 12);
- oled_set_cursor(col + 10, row);
- } else {
- oled_write(" ", false);
- }
- // Ctrl
- if (mods & MOD_MASK_CTRL) {
- oled_write_raw_P(mod_ctrl, 12);
- oled_set_cursor(col + 12, row);
- } else {
- oled_write(" ", false);
- }
- // Shift
- if (mods & MOD_MASK_SHIFT) {
- oled_write_raw_P(mod_shft, 12);
- oled_set_cursor(col + 14, row);
- } else {
- oled_write(" ", false);
- }
-}
-
-// Draws the image of the currently used layout
-void render_layout(uint8_t row, uint8_t col, uint8_t mods, bool isLeft) {
- // DVORAK
- static const char PROGMEM base0_L_dvor_nomod[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x00,0x00,0x00,
- 0x00,0x0e,0x00,0x00,0x00,0x00,0x60,0xe0,0x00,0x00,0x00,0x00,0xc0,0xc0,
- 0x00,0x00,0x00,0xf8,0x90,0x88,0x88,0x70,0x00,0x78,0x80,0x80,0x40,0xf8
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x00,0x00,
- 0x40,0x40,0x40,0x80,0x00,0x80,0x41,0x40,0x40,0x80,0x00,0x80,0x40,0x40,
- 0x40,0x80,0x00,0xc3,0x00,0x00,0x00,0xc0,0x00,0x00,0x42,0xd2,0x02,0x01
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0xd8,0x06,0x01,0x00,0x00,0x00,0x02,
- 0x05,0x05,0x05,0x07,0x00,0x03,0x04,0x04,0x04,0x03,0x00,0x03,0x05,0x05,
- 0x85,0x05,0x00,0xc3,0x04,0x04,0x02,0x07,0x00,0x00,0x00,0x07,0x04,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,
- 0xb6,0x76,0x00,0x00,0x00,0x1c,0x22,0x22,0x12,0xfe,0x00,0x00,0x80,0x82,
- 0x7e,0x00,0x00,0x3f,0x08,0x0c,0x12,0x20,0x00,0x22,0x14,0x08,0x14,0x22}};
- static const char PROGMEM base0_L_dvor_shift[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x20,0x10,0x20,0x40,0x20,0x00,0x00,
- 0x07,0x00,0x07,0x00,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x82,0x44,0x28,
- 0x10,0x00,0x00,0xfe,0x12,0x12,0x12,0x0c,0x00,0x06,0x08,0xf0,0x08,0x06
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe0,
- 0x90,0x90,0x90,0xe0,0x00,0xe0,0x10,0x10,0x10,0xe0,0x00,0xf0,0x90,0x90,
- 0x90,0x10,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x10,0xf0,0x10,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x80,0x87,0x80,0x00,0x00,0x07,
- 0x00,0x00,0x00,0x07,0x00,0x03,0x84,0x84,0x84,0x03,0x00,0x07,0x04,0x04,
- 0x04,0x84,0x00,0x83,0x04,0x04,0x04,0x83,0x00,0x80,0x04,0x07,0x04,0x80
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x01,0x00,0x28,0x04,0x03,0x00,0x00,
- 0x36,0x36,0x00,0x00,0x00,0x1f,0x20,0x28,0x10,0x6f,0x00,0x18,0x20,0x20,
- 0x20,0x1f,0x00,0x3f,0x04,0x0a,0x11,0x20,0x00,0x31,0x0a,0x04,0x0a,0x31}};
- static const char PROGMEM base0_R_dvor_nomod[4][42] = {
- { 0x00,0xfc,0x12,0x12,0x00,0x00,0x70,0x88,0x88,0x48,0xf8,0x00,0x70,0x88,
- 0x88,0x88,0x88,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0x00,0x02,0x7e,0x80,
- 0x80,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x00,0x80,0x80,0x80,0xf0,0x00,0xf0,0x02,0x82,0x82,0x01,0x00,0x00,0x80,
- 0xf0,0x80,0x80,0x00,0xc0,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x83,0x04,0x04,0x02,0x07,0x00,0x07,0x01,0x00,0x00,0x07,0x00,0x00,0x00,
- 0x03,0x04,0x04,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x04,0x05,0x05,0x05,
- 0x02,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x3f,0x24,0x22,0x22,0x1c,0x00,0x3e,0x02,0x3e,0x02,0x3c,0x00,0x1e,0x20,
- 0x1c,0x20,0x1e,0x00,0x06,0x18,0x20,0x18,0x06,0x00,0x22,0x32,0x2a,0x26,
- 0x22,0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM base0_R_dvor_shift[4][42] = {
- { 0xfe,0x12,0x12,0x12,0x02,0x00,0xfc,0x02,0x12,0x12,0xf4,0x00,0xfc,0x02,
- 0x02,0x02,0x84,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0xfe,0x00,0x00,0x00,
- 0x00,0x00,0x04,0x88,0x50,0x20,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0xf1,0x10,0x10,0x10,0xe0,0x00,0xf0,0x81,0x81,0x81,0xf0,0x00,0x10,0x11,
- 0xf1,0x11,0x10,0x00,0xf1,0x60,0x80,0x00,0xf1,0x00,0x61,0x91,0x91,0x91,
- 0x21,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x8f,0x88,0x88,0x88,0x07,0x00,0x8f,0x00,0x00,0x00,0x8f,0x00,0x80,0x00,
- 0x0f,0x00,0x80,0x00,0x8f,0x00,0x01,0x06,0x8f,0x00,0x84,0x88,0x88,0x88,
- 0x87,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x7f,0x44,0x44,0x44,0x3b,0x00,0x7f,0x01,0x06,0x01,0x7f,0x00,0x1f,0x60,
- 0x1c,0x60,0x1f,0x00,0x07,0x18,0x60,0x18,0x07,0x00,0x70,0x48,0x44,0x42,
- 0x41,0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM symb5_R_dvor[4][42] = {
- { 0x00,0x02,0x04,0x08,0x00,0x00,0x20,0x20,0xdc,0x02,0x02,0x00,0x02,0x02,
- 0xdc,0x20,0x20,0x00,0x00,0xc0,0x30,0x0c,0x03,0x00,0x50,0x50,0x50,0x50,
- 0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0xf0,0x11,0x12,0x02,0x00,0x02,0x12,
- 0x11,0xf0,0x00,0x00,0x43,0x20,0x20,0x20,0xc0,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x01,0x80,0x41,0x82,0x01,0x00,0x00,0x1f,0x10,0x90,0x00,0x00,0x00,0x90,
- 0x10,0x1f,0x00,0x00,0xc0,0x00,0x14,0x03,0x00,0x00,0x01,0x01,0x87,0x01,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x1c,0x63,0x80,0x00,0x00,0x00,0x80,
- 0x63,0x1c,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0x7f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM numb6_L_dvor_nomod[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,
- 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24,
- 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1,
- 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x01,0x01,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
- 0x08,0x08,0x08,0x08,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08,
- 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x01,0x01,0x01,0x01,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
- 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51,
- 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}};
- static const char PROGMEM numb6_L_dvor_shift[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xd8,0x24,0x54,0x88,0x40,0x00,0x50,0x20,0xf8,
- 0x20,0x50,0x00,0x00,0x38,0xc6,0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x60,0x91,0xf9,0x90,0x21,0x00,0x20,0x50,0x20,
- 0x80,0x60,0x00,0x40,0x20,0x10,0x21,0x40,0x00,0x00,0x01,0x00,0x00,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x02,0x09,
- 0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3e,0x41,0x5d,
- 0x55,0x5e,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x00,0x00,0x00,0x00,0x00}};
- // Turkish F
- static const char PROGMEM base0_L_turf_nomod[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,0x00,
- 0xfe,0x09,0x09,0x00,0x00,0x70,0x88,0x88,0x48,0xf8,0x00,0x51,0xaa,0xaa,
- 0x92,0x09,0x00,0x00,0x88,0xf8,0x80,0x00,0x00,0x70,0x88,0x88,0x88,0x70
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x40,0x80,0x00,0x80,0x40,0x00,0xc0,
- 0x00,0x00,0x00,0xc0,0x00,0x00,0x42,0xd2,0x02,0x01,0x00,0x81,0x42,0x42,
- 0x42,0x81,0x00,0x00,0x40,0x40,0x40,0x80,0x00,0xc0,0x10,0x00,0x10,0xc0
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x04,0x02,0x01,0x02,0x04,0x00,0x03,
- 0x04,0x04,0x82,0x07,0x00,0x00,0x80,0x07,0x84,0x00,0x00,0x03,0x05,0x05,
- 0x05,0x05,0x00,0x02,0x05,0x05,0x05,0x07,0x00,0x03,0x04,0x04,0x02,0x07
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x1c,0x22,0x22,0x12,0xfe,0x00,0x00,
- 0x80,0x82,0x7e,0x00,0x00,0x1c,0x22,0x22,0x22,0x1c,0x00,0x06,0x18,0x20,
- 0x18,0x06,0x00,0x1c,0x22,0x22,0x22,0x22,0x00,0x1c,0xa2,0x62,0x22,0x22}};
- static const char PROGMEM base0_L_turf_shift[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x28,0x10,0x7c,0x10,0x28,0x00,0xfe,
- 0x12,0x12,0x12,0x02,0x00,0xfc,0x02,0x12,0x12,0xf4,0x00,0xf1,0x0a,0x4a,
- 0x4a,0xd1,0x00,0x00,0x02,0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0xfc
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x30,0x40,0x80,0x40,0x30,0x00,0xf1,
- 0x00,0x00,0x00,0xf0,0x00,0x00,0x21,0xe9,0x21,0x00,0x00,0xf1,0x92,0x92,
- 0x92,0x11,0x00,0xe0,0x91,0x91,0x91,0xe0,0x00,0xe0,0x09,0x01,0x09,0xe0
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x0e,0x81,0x80,0x81,0x0e,0x00,0x07,
- 0x08,0x08,0x08,0x87,0x00,0x00,0x50,0x1f,0x50,0x00,0x00,0x8f,0x08,0x08,
- 0x08,0x88,0x00,0x0f,0x80,0x80,0x80,0x0f,0x00,0x8f,0x50,0x50,0x50,0x8f
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x3f,0x40,0x50,0x20,0xdf,0x00,0x30,
- 0x40,0x40,0x40,0x3f,0x00,0x7e,0x81,0x81,0x81,0x7e,0x00,0x07,0x18,0x60,
- 0x18,0x07,0x00,0x3f,0x40,0x40,0x40,0x21,0x00,0x1f,0xa0,0x60,0x20,0x10}};
- static const char PROGMEM base0_L_turf_altgr[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x10,0x10,0x10,0x30,0x00,0x00,0xf0,
- 0x08,0xe8,0xa8,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x0c,0x1e,0xfe,0x02,0xfe,0x00,0x70,0x8a,0x89,0x8a,0x70
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x10,0x20,0x40,0x00,0x00,0xc1,
- 0x12,0x0a,0x12,0xc2,0x00,0x00,0x10,0xc8,0x10,0x00,0x00,0x40,0xe0,0x50,
- 0x10,0x20,0x00,0x00,0x50,0x48,0x50,0x80,0x00,0xc0,0x10,0x08,0x10,0xc0
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x03,
- 0x04,0x04,0x02,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x83,0x05,
- 0x04,0x82,0x00,0x02,0x05,0x05,0x05,0x07,0x00,0x83,0x84,0x04,0x82,0x87
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x3e,0x3e,0x3e,0x00,0x08,0x14,
- 0x22,0x08,0x14,0x22,0x00,0x22,0x14,0x08,0x22,0x14,0x08,0x03,0x02,0x00,
- 0x03,0x02,0x00,0x1c,0x22,0x7f,0x22,0x22,0x00,0x02,0x01,0x00,0x02,0x01}};
- static const char PROGMEM base0_L_turf_shfgr[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x90,0x90,0xfc,0x90,0x90,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x0a,0x09,0x0a,0xf0
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x88,0x90,0xa0,0x00,0x00,0xc0,
- 0x10,0x08,0x10,0xc0,0x00,0x00,0x50,0xc8,0x50,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0x50,0x48,0x50,0x80,0x00,0xc1,0x12,0x0a,0x12,0xc1
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x8f,0x4f,0x8f,0x00,0x00,0x0f,
- 0x10,0x10,0x90,0x0f,0x00,0x80,0x10,0x1f,0x10,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x1f,0x82,0x82,0x82,0x1f,0x00,0x0f,0x10,0x10,0x10,0x0f
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x7c,0x7d,0x7c,0x00,0x00,0x04,
- 0x0a,0x11,0x20,0x00,0x00,0x20,0x11,0x0a,0x04,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x1f,0x24,0x2a,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00}};
- static const char PROGMEM base0_R_turf_nomod[4][42] = {
- { 0x70,0x88,0x88,0x48,0xff,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0xf8,0x08,
- 0x08,0x08,0xf0,0x00,0xff,0x10,0x08,0x08,0xf0,0x00,0xf8,0x90,0x88,0x88,
- 0x70,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x40,0xf8,0x40,0x40,0x00,0x00,0xf8,0x00,0x80,0x40,0x00,0x00,0xc0,0x40,
- 0xc0,0x40,0x80,0x00,0x08,0xf8,0x00,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,
- 0xc0,0x00,0x80,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x01,0x01,0x02,0x04,0x00,0xc7,0x00,
- 0x07,0x00,0x07,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x03,0x14,0x14,0x12,
- 0x0f,0x00,0x04,0x15,0x0d,0x05,0x02,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x22,0x32,0x2a,0x26,0x22,0x00,0x24,0x2a,0x2a,0x2a,0x10,0x00,0x3f,0x24,
- 0x22,0x22,0x1c,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0xb0,0x70,0x00,
- 0x00,0x00,0x1e,0x20,0x1c,0x20,0x1e,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM base0_R_turf_shift[4][42] = {
- { 0xfe,0x02,0x02,0x02,0xfc,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0xfe,0x0c,
- 0x30,0xc0,0xfe,0x00,0xfe,0x10,0x10,0x10,0xfe,0x00,0xfe,0x12,0x12,0x12,
- 0x0c,0x00,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x11,0x11,0xf1,0x11,0x10,0x00,0xf1,0x80,0x40,0x20,0x11,0x00,0xf1,0x20,
- 0xc0,0x20,0xf1,0x00,0xf1,0x00,0x00,0x00,0x01,0x00,0x31,0x40,0x80,0x40,
- 0x30,0x00,0x30,0x48,0x48,0x48,0x90,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x80,0x80,0x8f,0x80,0x80,0x00,0x0f,0x80,0x81,0x82,0x0c,0x00,0x8f,0x80,
- 0x80,0x80,0x0f,0x00,0x0f,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x0f,0x00,
- 0x00,0x00,0x82,0x14,0x0c,0x04,0x83,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x70,0x48,0x44,0x42,0x41,0x00,0x23,0x44,0x44,0x44,0x39,0x00,0x7f,0x44,
- 0x44,0x44,0x3b,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0xb6,0x76,0x00,
- 0x00,0x00,0x1f,0x60,0x1c,0x60,0x1f,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM base0_R_turf_altgr[4][42] = {
- { 0x53,0x54,0xf8,0x54,0x53,0x00,0x7c,0xba,0x8a,0x8a,0x7c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,0x20,0xfc,0x22,0x02,
- 0x84,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x80,0x80,0xf1,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
- 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x11,0x01,
- 0x00,0x00,0x40,0xf0,0x41,0xf0,0x40,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x02,0x01,0x0f,0x08,0x08,0x06,0x83,0x40,0x40,0x40,0x00,0x00,0x0f,0x02,
- 0x04,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x07,0x01,0x07,0x01,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x4a,0x4a,0x3c,0x00,0x00,0x11,0x0a,
- 0x04,0x0a,0x11,0x00,0x04,0x04,0x15,0x04,0x04,0x00,0x00,0x00,0x04,0x00,
- 0x00,0x00,0x04,0x02,0x04,0x08,0x04,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM base0_R_turf_shfgr[4][42] = {
- { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x90,0x88,
- 0x00,0x00,0x00,0x90,0xa1,0x90,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,
- 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x7d,0x7c,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM symb5_R_turf_nomod[4][42] = {
- { 0x20,0x20,0xf8,0x20,0x20,0x00,0x00,0xc0,0x30,0x0c,0x03,0x00,0x20,0x20,
- 0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x80,0x00,0xc0,0x00,0x80,0x00,0x43,0x20,0x20,0x20,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,0x9c,0xce,0x00,0x00
- },{ 0x02,0x81,0x47,0x81,0x02,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x04,0x04,
- 0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM symb5_R_turf_altgr[4][42] = {
- { 0x10,0x10,0x10,0x30,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x80,0x80,0xe0,0x80,0x80,0x00,0x00,0x00,0xa0,0x00,0x03,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x04,0x84,0x47,0x84,0x04,0x00,0x06,0x09,0x08,0x08,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,0x73,0x39,0x00,0x00
- },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM numb6_L_turf_nomod[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,
- 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24,
- 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1,
- 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x01,0x01,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08,
- 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
- 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51,
- 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}};
- static const char PROGMEM numb6_L_turf_shift[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
- 0x88,0x50,0x20,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x38,0xc6,
- 0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00,0x00,0x50,0x50,0x50,0x50,0x50
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x60,0x90,0xf8,0x90,0x20,0x00,0x20,0x50,0x20,
- 0x81,0x60,0x00,0x70,0x89,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x82,0x09,
- 0x94,0x08,0x00,0x07,0x08,0x89,0x06,0x09,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
- 0x22,0x14,0x08,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x00,0x03,0x00,
- 0x03,0x00,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x5e,0x61,0x01,0x61,0x5e}};
- static const char PROGMEM numb6_L_turf_altgr[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x10,0x10,0xee,0x01,0x01,0x00,0x00,0xff,0x01,
- 0x01,0x00,0x00,0x00,0x01,0x01,0xff,0x00,0x00,0x01,0x01,0xee,0x10,0x10
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x00,0x10,0xf8,0x00,0x01,0x01,0x00,0x10,0xf9,0x01,
- 0x01,0x00,0x00,0x88,0xa9,0x51,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x08,0x8c,0x0a,0x1f,0x00,0x00,0x00,0x90,
- 0x90,0x10,0x00,0x00,0x08,0x0c,0x0a,0x1f,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x7b,0x00,0x00,0x00,0x00,0x09,0x0f,0x08,0x00,0x00,0x00,0x09,0x0c,
- 0x0a,0x09,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x5e,0x61,0x01,0x61,0x5e}};
- static const char PROGMEM numb6_L_turf_shfgr[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x90,0xfc,
- 0x90,0x90,0x00,0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xa8,0x50,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x0a,
- 0x15,0x0a,0x00,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x7b,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x04,0x05,0x05,0x02,0x00,0x00,0x5e,0x61,0x01,0x61,0x5e}};
- // QWERTY
- static const char PROGMEM base0_L_qwer_nomod[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x00,0x00,0x70,
- 0x88,0x88,0x48,0xf8,0x00,0x78,0x80,0x70,0x80,0x78,0x00,0x70,0xa8,0xa8,
- 0xa8,0xb0,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0x08,0x7f,0x88,0x88,0x00
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x18,0x60,0x80,0x00,0x00,0x00,0x00,
- 0x40,0x40,0x40,0x83,0x00,0x80,0x40,0x40,0x40,0x00,0x00,0x80,0x40,0x40,
- 0x40,0xf8,0x00,0x00,0xf0,0x48,0x48,0x00,0x00,0x80,0x40,0x40,0x40,0xc0
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0xc0,0x41,0x46,0x18,0x00,0x02,
- 0x05,0x05,0x05,0x07,0x00,0x04,0x05,0x05,0x05,0x02,0x00,0x03,0x04,0x04,
- 0x02,0x07,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0xc3,0x14,0x14,0x12,0x0f
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0xff,0x80,0x80,0x00,0x00,0x22,
- 0x32,0x2a,0x26,0x22,0x00,0x22,0x14,0x08,0x14,0x22,0x00,0x1c,0x22,0x22,
- 0x22,0x22,0x00,0x06,0x18,0x20,0x18,0x06,0x00,0x3f,0x24,0x22,0x22,0x1c}};
- static const char PROGMEM base0_L_qwer_shift[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x20,0x10,0x20,0x40,0x20,0x00,0xfc,
- 0x02,0x42,0x82,0x7c,0x00,0x7e,0x80,0x70,0x80,0x7e,0x00,0xfe,0x12,0x12,
- 0x12,0x02,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0x02,0x02,0xfe,0x02,0x02
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xe0,
- 0x91,0x91,0x90,0xe3,0x00,0x60,0x91,0x90,0x91,0x20,0x00,0xf1,0x11,0x11,
- 0x11,0xe1,0x00,0xf1,0x90,0x90,0x90,0x11,0x00,0xe0,0x10,0x91,0x90,0xa0
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x9f,0x40,0x40,0x00,0x8f,
- 0x80,0x80,0x80,0x8f,0x00,0x84,0x08,0x08,0x08,0x87,0x00,0x0f,0x88,0x88,
- 0x88,0x07,0x00,0x8f,0x00,0x00,0x00,0x80,0x00,0x87,0x88,0x88,0x88,0x07
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x04,0x04,0x7b,0x80,0x80,0x00,0x70,
- 0x48,0x44,0x42,0x41,0x00,0x71,0x0a,0x04,0x0a,0x71,0x00,0x3f,0x40,0x40,
- 0x40,0x21,0x00,0x07,0x18,0x60,0x18,0x07,0x00,0x7f,0x44,0x44,0x44,0x3b}};
- static const char PROGMEM base0_R_qwer_nomod[4][42] = {
- { 0x78,0x80,0x80,0x40,0xf8,0x00,0x78,0x80,0x80,0x40,0xf8,0x00,0x00,0x08,
- 0xfa,0x80,0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0xf8,0x90,0x88,0x88,
- 0x70,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0xf8,0x82,0x42,0x42,0x81,0x00,0x00,0x00,0x40,0xd0,0x00,0x00,0xf8,0x00,
- 0x80,0x40,0x00,0x00,0x08,0xf8,0x00,0x00,0x00,0x00,0x03,0xc0,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x10,0x10,0x0f,0x00,0x00,0x07,0x01,
- 0x01,0x02,0x04,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x00,0x16,0x0e,0x00,
- 0xc0,0x00,0x00,0x40,0x40,0xc0,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x3e,0x02,0x02,0x02,0x3c,0x00,0x3e,0x02,0x3e,0x02,0x3c,0x00,0x00,0xb0,
- 0x70,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0xc0,0x30,0x0c,0x03,
- 0x00,0x00,0x00,0x80,0x80,0xff,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM base0_R_qwer_shift[4][42] = {
- { 0x06,0x08,0xf0,0x08,0x06,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x02,
- 0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0xfc,0x00,0xfe,0x12,0x12,0x12,
- 0x0c,0x00,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0xf0,0x80,0x81,0x80,0xf0,0x00,0x00,0x01,0x01,0x01,0xf0,0x00,0xf0,0x81,
- 0x41,0x21,0x10,0x00,0xf0,0x01,0x01,0x01,0x00,0x00,0x01,0xc0,0xc0,0x00,
- 0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x8f,0x00,0x00,0x00,0x8f,0x00,0x86,0x08,0x08,0x08,0x87,0x00,0x0f,0x00,
- 0x01,0x82,0x0c,0x00,0x8f,0x08,0x08,0x08,0x08,0x00,0x00,0x86,0x86,0x80,
- 0x00,0x00,0x00,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x7f,0x03,0x0c,0x30,0x7f,0x00,0x7f,0x01,0x06,0x01,0x7f,0x00,0x04,0x0a,
- 0x11,0x20,0x00,0x00,0x20,0x11,0x0a,0x04,0x00,0x00,0x01,0x00,0x28,0x04,
- 0x03,0x00,0x00,0x80,0x80,0x7b,0x04,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM symb5_R_qwer[4][42] = {
- { 0x00,0x04,0x08,0x10,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x50,0x50,
- 0x50,0x50,0x50,0x00,0x10,0x10,0xee,0x01,0x01,0x00,0x01,0x01,0xee,0x10,
- 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x00,0x00,0x00,0x00,0xf8,0x09,0x0a,0x02,0x00,0x02,0x0a,0x09,0xf8,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x01,0x80,0x41,0x82,0x01,0x00,0x04,0x04,0x84,0x44,0x04,0x00,0x01,0x41,
- 0x87,0x01,0x01,0x00,0xc0,0x1f,0x10,0x10,0x00,0x00,0x00,0x10,0xd0,0x1f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x1e,0x61,0x80,0x00,0x00,0x00,0x80,
- 0x61,0x1e,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM numb6_L_qwer_nomod[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,
- 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24,
- 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x70,0x00,0x71,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1,
- 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x71,0x01,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08,
- 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
- 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51,
- 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}};
- static const char PROGMEM numb6_L_qwer_shift[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xd8,0x24,0x54,0x88,0x40,0x00,0x50,0x20,0xf8,
- 0x20,0x50,0x00,0x00,0x38,0xc6,0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x70,0x00,0x70,0x00,0x00,0x60,0x91,0xf9,0x90,0x21,0x00,0x20,0x50,0x20,
- 0x80,0x60,0x00,0x40,0x20,0x10,0x21,0x40,0x00,0x00,0x71,0x00,0x70,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x02,0x09,
- 0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3e,0x41,0x5d,
- 0x55,0x5e,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x00,0x00,0x00,0x00,0x00}};
-
- // UNIVERSAL
- static const char PROGMEM char1_L[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xe2,0xae,0x42,0x00,0x00,0x20,0x44,0x40,0x4c,0x20,0x00,0x12,0xa4,0x88,
- 0xa4,0x12,0x00,0x08,0xf8,0x08,0xf8,0x08,0x00,0x78,0x80,0x80,0x80,0x78
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0x41,0x40,0x41,0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x81,0x40,0x40,
- 0x40,0x81,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0x00,0xc0,0x00,0x00,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,
- 0xc4,0x84,0xc2,0x07,0x00,0x03,0x04,0x04,0x04,0x03,0x00,0x02,0x85,0x05,
- 0x04,0x82,0x00,0x03,0x04,0x1f,0x04,0x03,0x00,0x80,0x83,0x84,0x82,0x80
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,
- 0xc4,0x44,0xef,0x3b,0x00,0x3e,0x49,0x49,0x49,0x3e,0x00,0x02,0x7f,0x09,
- 0x09,0x78,0x00,0x3e,0x08,0x08,0x14,0x22,0x00,0x20,0x24,0x24,0x24,0x20}};
- static const char PROGMEM char1_R[4][42] = {
- { 0x70,0x88,0xf0,0x88,0x70,0x00,0xfe,0x02,0x02,0x02,0x06,0x00,0x88,0x48,
- 0x70,0x90,0x88,0x00,0xf0,0x88,0x88,0x88,0x70,0x00,0xc0,0x30,0x0c,0x30,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0xa0,0x50,0x53,0x90,0x20,0x00,0xc0,0x80,0x40,0x40,0x80,0x00,0x40,0x40,
- 0xc0,0x40,0x40,0x00,0xc3,0x00,0x00,0x00,0xc0,0x00,0x80,0x40,0xc0,0x40,
- 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x03,0x84,0x84,0x04,0x03,0x00,0x07,0x00,0x00,0x00,0x1f,0x00,0x00,0x80,
- 0x83,0x84,0x00,0x00,0x00,0x83,0x54,0x8b,0x00,0x00,0x83,0x84,0x84,0x83,
- 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0xff,0x24,0x24,0x27,0x18,0x00,0x7e,0x10,0x20,0x20,0x1e,0x00,0x2f,0x30,
- 0x00,0x30,0x2f,0x00,0xe0,0x38,0x25,0x38,0xe0,0x00,0x18,0x26,0xa1,0xa0,
- 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM game2_L[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,
- 0x82,0xa2,0x42,0xbc,0x00,0x3e,0xc0,0x30,0xc0,0x3e,0x00,0xfe,0x92,0x92,
- 0x92,0x82,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0x02,0x02,0xfe,0x02,0x02
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0xe0,0x00,0xe0,
- 0x90,0x90,0x90,0xe1,0x00,0x60,0x90,0x90,0x90,0x20,0x00,0xf0,0x10,0x10,
- 0x10,0xe0,0x00,0xf0,0x90,0x90,0x90,0x10,0x00,0xe0,0x10,0x90,0x90,0xa0
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x00,0x87,
- 0x80,0x80,0x80,0x87,0x00,0x82,0x04,0x04,0x04,0x83,0x00,0x07,0x84,0x84,
- 0x84,0x03,0x00,0x87,0x00,0x00,0x00,0x80,0x00,0x83,0x84,0x84,0x84,0x03
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x08,0x3c,0x02,0x3c,0x08,0x00,0x30,
- 0x28,0x24,0x22,0x21,0x00,0x31,0x0a,0x04,0x0a,0x31,0x00,0x1f,0x20,0x20,
- 0x20,0x11,0x00,0x03,0x0c,0x30,0x0c,0x03,0x00,0x3f,0x24,0x24,0x24,0x1b}};
- static const char PROGMEM medi3_R_nomod[4][42] = {
- { 0x03,0x0c,0xb0,0x0c,0x03,0x00,0x3f,0x02,0x9c,0x02,0x3f,0x00,0x3f,0x04,
- 0x84,0x04,0x3f,0x00,0x22,0x25,0xa5,0x25,0x18,0x00,0x3f,0x25,0xa5,0x25,
- 0x1a,0x00,0x00,0xe0,0x8f,0x02,0x31,0x49,0xfa,0x00,0xe7,0x73,0x00,0x00
- },{ 0xc0,0x01,0x73,0x01,0xc0,0x00,0xf0,0x81,0xc3,0xe1,0xf0,0x00,0x00,0x71,
- 0x03,0x71,0x00,0x00,0x00,0xc1,0xc3,0xc1,0x00,0x00,0xf0,0xe1,0xc3,0x81,
- 0xf0,0x00,0x00,0x03,0xe2,0x21,0xe0,0x21,0xc0,0x00,0x9c,0xce,0x00,0x00
- },{ 0x01,0x02,0x02,0x02,0x01,0x00,0x07,0x00,0x01,0x03,0x87,0x00,0x00,0x1f,
- 0x0e,0x04,0x80,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x07,0x03,0x01,0x00,
- 0x87,0x00,0x00,0x40,0xa6,0xa8,0x08,0x04,0x8e,0x00,0x73,0x39,0x00,0x00
- },{ 0x3e,0x31,0x01,0x31,0x3e,0x00,0x00,0x46,0x46,0x4f,0x1f,0x00,0x00,0xa6,
- 0x46,0xaf,0x1f,0x00,0x28,0x2c,0x2e,0x2c,0x28,0x00,0x00,0x46,0xe6,0x4f,
- 0x1f,0x00,0x00,0x02,0x72,0x8a,0x89,0x00,0x1e,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM medi3_R_shift[4][42] = {
- { 0x03,0x0c,0x30,0x0c,0x03,0x00,0x3f,0x02,0x1c,0x02,0x3f,0x00,0x3f,0x04,
- 0x04,0x04,0x3f,0x00,0x22,0x25,0x25,0x25,0x18,0x00,0x3f,0x25,0x25,0x25,
- 0x1a,0x00,0x00,0xe0,0x8f,0x02,0x31,0x49,0xfa,0x00,0xe7,0x73,0x00,0x00
- },{ 0xc0,0x01,0x71,0x01,0xc0,0x00,0xf0,0x81,0xc1,0xe1,0xf0,0x00,0x00,0x71,
- 0x01,0x71,0x00,0x00,0x00,0xc1,0xc1,0xc1,0x00,0x00,0xf0,0xe1,0xc1,0x81,
- 0xf0,0x00,0x00,0x03,0xe2,0x21,0xe0,0x21,0xc0,0x00,0x9c,0xce,0x00,0x00
- },{ 0x01,0x02,0x02,0x02,0x01,0x00,0x07,0x00,0x01,0x03,0x87,0x00,0x00,0x1f,
- 0x0e,0x04,0x80,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x07,0x03,0x01,0x00,
- 0x87,0x00,0x00,0x40,0xa6,0xa8,0x08,0x04,0x8e,0x00,0x73,0x39,0x00,0x00
- },{ 0x3e,0x31,0x01,0x31,0x3e,0x00,0x00,0x46,0x46,0x4f,0x1f,0x00,0x00,0xa6,
- 0x46,0xaf,0x1f,0x00,0x28,0x2c,0x2e,0x2c,0x28,0x00,0x00,0x46,0xe6,0x4f,
- 0x1f,0x00,0x00,0x02,0x72,0x8a,0x89,0x00,0x1e,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM navi4_R[4][42] = {
- { 0xe0,0x10,0x54,0x38,0x10,0x00,0xfc,0x24,0x24,0x24,0x18,0x00,0x0c,0x10,
- 0xe0,0x10,0x0c,0x00,0x8c,0x50,0x20,0x50,0x8c,0x00,0xc0,0xbe,0xa2,0xbe,
- 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x80,0xc1,0xa1,0x81,0x00,0x00,0x01,0x80,0x40,0x20,0x00,0x00,0x00,0x00,
- 0xf1,0x00,0x00,0x00,0x41,0x20,0xd0,0x20,0x41,0x00,0x01,0x21,0x41,0x81,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x00,0x49,0x4a,0x48,0x87,0x00,0x81,0x82,0x85,0x89,0x01,0x00,0x01,0x02,
- 0x85,0x02,0x01,0x00,0x40,0x40,0x47,0x40,0x40,0x00,0x81,0x09,0x05,0x02,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00
- },{ 0x12,0x65,0x85,0x65,0x17,0x00,0x07,0x01,0x06,0x18,0x60,0x00,0x88,0x90,
- 0xaf,0x90,0x88,0x00,0x04,0x02,0x7d,0x02,0x04,0x00,0x01,0x46,0x58,0x60,
- 0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- static const char PROGMEM func7_L[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0xff,0x09,0xe9,0xc9,0x01,0x00,0xe0,0x00,
- 0x10,0x08,0xfc,0x00,0x00,0x08,0x84,0x44,0x24,0x18,0x00,0x88,0x04,0x24,
- 0x24,0xd8,0x00,0x60,0x50,0x48,0xfc,0x40,0x00,0x70,0x80,0x9c,0x80,0x70
- },{ 0x00,0x00,0xce,0x9c,0x00,0xf0,0x00,0x00,0x9f,0x00,0x03,0x0c,0x1f,0x00,
- 0xe0,0xa0,0xa1,0x20,0x00,0xc1,0xa1,0xa1,0xa1,0x01,0x00,0x20,0x21,0x21,
- 0xa1,0x60,0x00,0xc0,0x20,0x20,0x21,0xc0,0x00,0x40,0xe0,0x50,0x40,0x80
- },{ 0x00,0x00,0x39,0x73,0x00,0xef,0x02,0x83,0xe4,0x00,0x0e,0x15,0x16,0x00,
- 0x04,0x08,0x08,0x07,0x00,0x07,0x48,0xc8,0x08,0x07,0x00,0x00,0x40,0xce,
- 0x01,0x00,0x00,0x06,0x49,0xc9,0x09,0x06,0x00,0x06,0x08,0x49,0x08,0x07
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x05,0x04,0x03,0x90,0xa8,0xa8,0x40,0x06,
- 0x49,0x49,0x49,0x3e,0x00,0x7c,0xa2,0x93,0x8a,0x7c,0x00,0x00,0x08,0x07,
- 0xfe,0x00,0x00,0x84,0xc2,0xa3,0x92,0x8c,0x00,0x70,0x38,0x0d,0x38,0x70}};
- static const char PROGMEM mous8_L[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x3c,0x84,0xbc,0x84,0x38,0x00,0x00,0x00,0x10,
- 0x28,0x92,0xc5,0x82,0x00,0xfe,0x1f,0x1f,0x01,0xfe,0x00,0xfe,0x01,0x19,
- 0x01,0xfe,0x00,0xfe,0x01,0x1f,0x1f,0xfe,0x00,0x10,0x38,0x92,0xc7,0x82
- },{ 0x00,0x00,0xce,0x9c,0x00,0xe7,0x08,0x08,0x08,0xe7,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x01,0x00,0x00,0x01,0x01,0x81,0x01,0x01,0x00,0x01,0x01,0x81,
- 0x01,0x01,0x00,0x01,0x01,0x81,0x01,0x01,0x00,0x60,0x50,0xf8,0x41,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x91,0xaa,0xaa,0xa9,0x43,0x00,0x00,0x00,0x02,
- 0x07,0xca,0x02,0x02,0x00,0x02,0x01,0xcf,0x01,0x02,0x00,0x02,0x04,0x0f,
- 0x04,0x02,0x00,0x02,0x02,0xca,0x07,0x02,0x00,0xdc,0x58,0x5c,0x18,0x1f
- },{ 0x00,0x00,0xe7,0xce,0x00,0x1c,0x2a,0x2a,0x2a,0x2c,0x00,0x00,0x00,0x0c,
- 0x33,0xc0,0x00,0x00,0x00,0x0c,0x03,0x00,0x03,0x0c,0x00,0x0c,0x30,0xc0,
- 0x30,0x0c,0x00,0x00,0x00,0xc0,0x33,0x0c,0x00,0xe5,0xc9,0xe6,0xc0,0xf8}};
- static const char PROGMEM musi9_L[4][42] = {
- { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0xfe,0x04,0x18,0x04,0xfe,
- 0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x8c,0x12,0x12,0x12,0xe4,0x00,
- 0x00,0x02,0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0x84,0x00,0x00,0x00
- },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0xc0,0xe0,0xf0,0xf9,0xf8,0xf8,0xf8,0xf9,
- 0xf0,0xe0,0xc0,0x01,0x01,0x01,0x00,0xf0,0xf0,0x01,0x01,0xf1,0xf0,0x00,
- 0x00,0x01,0x01,0x01,0x00,0x00,0xf8,0xf1,0xe1,0xc1,0x80,0x00,0x00,0x00
- },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x07,0x0f,0x1f,0x3f,0x3f,0x3f,0x3f,0x3f,
- 0x1f,0x0f,0x07,0x00,0x00,0x00,0x00,0x1f,0x1f,0x00,0x00,0x1f,0x1f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x00
- },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x08,
- 0xf8,0x08,0xf0,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0x70,0x88,0x88,0x48,
- 0xff,0x00,0x70,0xa8,0xa8,0xa8,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
- static const char PROGMEM musi9_R[4][42] = {
- { 0x00,0x00,0x00,0xfe,0x04,0x18,0x04,0xfe,0x00,0x00,0xfe,0x00,0x00,0x00,
- 0xfe,0x00,0x8c,0x12,0x12,0x12,0xe4,0x00,0x00,0x02,0xfe,0x02,0x00,0x00,
- 0xfc,0x02,0x02,0x02,0x84,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00
- },{ 0x00,0x00,0x00,0x81,0x60,0x10,0x60,0x81,0x60,0x10,0x00,0x01,0x01,0x01,
- 0xe0,0xe0,0x60,0x61,0x61,0x61,0x60,0xf8,0x70,0x21,0x01,0x01,0xc0,0xe0,
- 0x60,0x01,0xf9,0xf9,0x00,0x60,0xe0,0xc0,0x00,0x00,0x9c,0xce,0x00,0x00
- },{ 0x18,0x24,0x4b,0x48,0x48,0x4c,0x4b,0x48,0x4b,0x2c,0x18,0x00,0x00,0x00,
- 0x4f,0xe7,0xf0,0x60,0x60,0x60,0x60,0x60,0x7e,0x7f,0x00,0x0f,0x3f,0x70,
- 0x60,0xc0,0xc1,0xc1,0xc0,0x60,0x70,0x3f,0x0f,0x00,0x73,0x39,0x00,0x00
- },{ 0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x08,0xf8,0x08,0xf0,0x00,0x70,0x88,
- 0x88,0x88,0x71,0x00,0x70,0x88,0x88,0x48,0xff,0x00,0x70,0xa8,0xa8,0xa8,
- 0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}};
- uint8_t this_layout = userspace_config.layout % 3;
-
- // Render the requested image on the given column and row
- // Don't grab highest layer; instead compare from top to bottom.
- // Highest layer might be on the other side
- if (isLeft) {
- if (layer_state_cmp(layer_state, _MUSI)) {
- draw_image(row, col, musi9_L);
- } else if (layer_state_cmp(layer_state, _MOUS)) {
- draw_image(row, col, mous8_L);
- } else if (layer_state_cmp(layer_state, _FUNC)) {
- draw_image(row, col, func7_L);
- } else if (layer_state_cmp(layer_state, _NUMB)) {
- switch (this_layout) {
- case 0: // Dvorak
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, numb6_L_dvor_shift);
- } else {
- draw_image(row, col, numb6_L_dvor_nomod);
- }
- break;
- case 1: // Turkish F
- if ((mods & MOD_MASK_SHIFT) && (mods & MOD_BIT(KC_RALT))) {
- // Shift + AltGr
- draw_image(row, col, numb6_L_turf_shfgr);
- } else if (mods & MOD_MASK_SHIFT) {
- // Shift
- draw_image(row, col, numb6_L_turf_shift);
- } else if (mods & MOD_BIT(KC_RALT)) {
- // AltGr
- draw_image(row, col, numb6_L_turf_altgr);
- } else {
- // Normal
- draw_image(row, col, numb6_L_turf_nomod);
- }
- break;
- case 2: // Qwerty
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, numb6_L_qwer_shift);
- } else {
- draw_image(row, col, numb6_L_qwer_nomod);
- }
- break;
- }
- } else if (layer_state_cmp(layer_state, _GAME)) {
- draw_image(row, col, game2_L);
- } else if (layer_state_cmp(layer_state, _CHAR)) {
- draw_image(row, col, char1_L);
- } else {
- switch (this_layout) {
- case 0: // Dvorak
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, base0_L_dvor_shift);
- } else {
- draw_image(row, col, base0_L_dvor_nomod);
- }
- break;
- case 1: // Turkish F
- if ((mods & MOD_MASK_SHIFT) && (mods & MOD_BIT(KC_RALT))) {
- // Shift + AltGr
- draw_image(row, col, base0_L_turf_shfgr);
- } else if (mods & MOD_MASK_SHIFT) {
- // Shift
- draw_image(row, col, base0_L_turf_shift);
- } else if (mods & MOD_BIT(KC_RALT)) {
- // AltGr
- draw_image(row, col, base0_L_turf_altgr);
- } else {
- // Normal
- draw_image(row, col, base0_L_turf_nomod);
- }
- break;
- case 2: // Qwerty
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, base0_L_qwer_shift);
- } else {
- draw_image(row, col, base0_L_qwer_nomod);
- }
- break;
- }
- }
- } else {
- if (layer_state_cmp(layer_state, _MUSI)) {
- draw_image(row, col, musi9_R);
- } else if (layer_state_cmp(layer_state, _SYMB)) {
- switch (this_layout) {
- case 0: // Dvorak
- draw_image(row, col, symb5_R_dvor);
- break;
- case 1: // Turkish f
- if (mods & MOD_BIT(KC_RALT)) {
- // AltGr
- draw_image(row, col, symb5_R_turf_altgr);
- } else {
- // Normal
- draw_image(row, col, symb5_R_turf_nomod);
- }
- break;
- case 2: // Qwerty
- draw_image(row, col, symb5_R_qwer);
- break;
- }
- } else if (layer_state_cmp(layer_state, _NAVI)) {
- draw_image(row, col, navi4_R);
- } else if (layer_state_cmp(layer_state, _MEDI)) {
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, medi3_R_shift);
- } else {
- draw_image(row, col, medi3_R_nomod);
- }
- } else if (layer_state_cmp(layer_state, _CHAR)) {
- draw_image(row, col, char1_R);
- } else {
- switch (this_layout) {
- case 0: // Dvorak
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, base0_R_dvor_shift);
- } else {
- draw_image(row, col, base0_R_dvor_nomod);
- }
- break;
- case 1: // Turkish F
- if ((mods & MOD_MASK_SHIFT) && (mods & MOD_BIT(KC_RALT))) {
- // Shift + AltGr
- draw_image(row, col, base0_R_turf_shfgr);
- } else if (mods & MOD_MASK_SHIFT) {
- // Shift
- draw_image(row, col, base0_R_turf_shift);
- } else if (mods & MOD_BIT(KC_RALT)) {
- // AltGr
- draw_image(row, col, base0_R_turf_altgr);
- } else {
- // Normal
- draw_image(row, col, base0_R_turf_nomod);
- }
- break;
- case 2: // Qwerty
- if (mods & MOD_MASK_SHIFT) {
- draw_image(row, col, base0_R_qwer_shift);
- } else {
- draw_image(row, col, base0_R_qwer_nomod);
- }
- break;
- }
- }
- }
-}
-
-// Render the RGB state on the given column and row
-void render_rgb(uint8_t row, uint8_t col) {
- static const char PROGMEM rgb_enab[12] = {0x08,0x81,0x3c,0x42,0x99,0xbd,0xbd,0x99,0x42,0x3c,0x81,0x10};
- static const char PROGMEM rgb_disa[12] = {0x08,0x81,0x3c,0x42,0x81,0x81,0x81,0x81,0x42,0x3c,0x81,0x10};
- static char rgb_temp4[4] = {0};
- static char rgb_temp3[3] = {0};
-
- oled_set_cursor(col, row);
-# ifdef RGB_MATRIX_ENABLE
- if (rgb_matrix_is_enabled()) {
- oled_write_raw_P(rgb_enab, 12);
- } else {
- oled_write_raw_P(rgb_disa, 12);
- }
- oled_set_cursor(col + 2, row);
- oled_write(" hue sat val", false);
- oled_set_cursor(col, row + 1);
- itoa(rgb_matrix_get_mode(), rgb_temp3, 10);
- oled_write(rgb_temp3, false);
- oled_write(" ", false);
- itoa(rgb_matrix_get_hue(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
- oled_write(" ", false);
- itoa(rgb_matrix_get_sat(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
- oled_write(" ", false);
- itoa(rgb_matrix_get_val(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
-# else // RGB_MATRIX_ENABLE
- oled_write("-RGB disabled-", false);
-# endif // RGB_MATRIX_ENABLE
-}
-
-void render_status_left(uint8_t row, uint8_t col) {
- // Left side looks like this on the left half
- // (Should be 14 characters per line)
- // Mods: <OS> <Alt/Gr> <Ctrl> <Shift>
- // Enc: <8 len str>
- // Wpm: <wpm here>
- // Layout: <dvorak/qwerty/tur. f>
- // Right half is whatever layer image needs be
- uint8_t this_mod = get_mods();
- uint8_t this_layer = get_highest_layer(layer_state);
-
- // MODIFIERS
- render_modifiers(row + 0, col + 0, this_mod);
- // Encoders
- render_encoder(row + 1, col + 0, 0, this_layer);
- // WPM text
- render_wpm(row + 2, col + 0);
- // Visual layout
- render_keymap(row + 3, col + 0, false);
- // Draw the image after 14'th character
- render_layout(row + 0, col + 14, this_mod, true);
-}
-
-void render_status_right(uint8_t row, uint8_t col) {
- // Right half is whatever layer image needs be on the left
- // Right side looks like this on the right half
- // (Should be after the 12'th character; max 14 characters per line)
- // Mods: <OS> <Alt/Gr> <Ctrl> <Shift>
- // Enc: <8 len str>
- // Wpm: <wpm here>
- // Layout: <dvorak/qwerty/tur. f>
- uint8_t this_mod = get_mods();
- uint8_t this_layer = get_highest_layer(layer_state);
-
- // Draw the image
- render_layout(row + 0, col + 0, this_mod, false);
- // Modifiers
- render_modifiers(row + 0, col + 7, this_mod);
- // Encoder
- render_encoder(row + 1, col + 7, 1, this_layer);
- // RGB State (2 rows)
- render_rgb(row + 2, col + 7);
-}
diff --git a/users/bbaserdem/bb-oled-extra.h b/users/bbaserdem/bb-oled-extra.h
deleted file mode 100644
index c051e6226c..0000000000
--- a/users/bbaserdem/bb-oled-extra.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-// OLED layout images writer function
-void render_modifiers(uint8_t row, uint8_t col, uint8_t mods);
-void render_layout(uint8_t row, uint8_t col, uint8_t mods, bool isLeft);
-void render_rgb(uint8_t row, uint8_t col);
-void render_status_left(uint8_t row, uint8_t col);
-void render_status_right(uint8_t row, uint8_t col);
diff --git a/users/bbaserdem/bb-oled.c b/users/bbaserdem/bb-oled.c
deleted file mode 100644
index cf00193c03..0000000000
--- a/users/bbaserdem/bb-oled.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-oled.h"
-
-#include <string.h>
-// Grab the print function
-#ifdef ENCODER_ENABLE
-# include "bb-encoder.h"
-#endif // ENCODER_ENABLE
-
-/* OLED
- * This contains general purpose oled code
- */
-
-// Allow default to be overwritten by keymap if they return false
-__attribute__ ((weak)) bool oled_task_keymap(void) {return true;}
-
-// Do sane defaults for regular oled rendering
-void oled_task_user(void) {
- if (is_oled_on()) {
- if (oled_task_keymap()) {
- render_status_lite(0, 0);
- }
- }
-}
-
-/*-------------------------*\
-|*---RENDERING FUNCTIONS---*|
-\*-------------------------*/
-void render_qmk_logo(uint8_t row, uint8_t col) {
- static const char PROGMEM qmk_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_set_cursor(col, row);
- oled_write_P(qmk_logo, false);
-}
-
-void render_layer(uint8_t row, uint8_t col, uint8_t top_layer) {
- // Write the layer state; 17 chars
- oled_set_cursor(col, row);
- oled_write("Layer: ", false);
- switch (top_layer) {
- case _BASE:
- oled_write("Default ", false);
- break;
- case _CHAR:
- oled_write("Sp. Chars ", false);
- break;
- case _GAME:
- oled_write("Gaming ", false);
- break;
- case _MEDI:
- oled_write("Media Ctr ", false);
- break;
- case _NAVI:
- oled_write("Navigation", false);
- break;
- case _SYMB:
- oled_write("Symbols ", false);
- break;
- case _NUMB:
- oled_write("Numpad ", false);
- break;
- case _FUNC:
- oled_write("Funct Keys", false);
- break;
- case _MOUS:
- oled_write("Mouse Keys", false);
- break;
- case _MUSI:
- oled_write("Music Mode", false);
- break;
- default:
- oled_write("?? N/A ?? ", false);
- }
-}
-
-void render_modifiers_lite(uint8_t row, uint8_t col, uint8_t mods) {
- // Write the modifier state, 16 characters
- oled_set_cursor(col, row);
- oled_write((mods & MOD_MASK_SHIFT ) ? "Shft " : " ", false);
- oled_write((mods & MOD_MASK_CTRL ) ? "Ctrl " : " ", false);
- oled_write((mods & MOD_MASK_ALT ) ? "Alt" : " ", false);
- oled_write((mods & MOD_BIT(KC_RALT)) ? "G " : " ", false);
- oled_write((mods & MOD_MASK_GUI ) ? "Meta " : " ", false);
-}
-
-void render_encoder(uint8_t row, uint8_t col, uint8_t index, uint8_t layer) {
- // Renders the encoder state, 14 characters
- oled_set_cursor(col, row);
-
-# ifdef ENCODER_ENABLE
- static char encoder_temp9[9] = {0};
- oled_write("Enc: ", false);
- encoder_state_string(index, layer, encoder_temp9);
- oled_write(encoder_temp9, false);
-# else // ENCODER_ENABLE
- oled_write("No enc. avail.", false);
-# endif // ENCODER_ENABLE
-}
-
-void render_wpm(uint8_t row, uint8_t col) {
- // Renders the WPM, 8 characters
- oled_set_cursor(col, row);
-# ifdef WPM_ENABLE
- static char wpm_temp4[4] = {0};
- oled_write("WPM: ", false);
- itoa(get_current_wpm(), wpm_temp4, 10);
- oled_write(wpm_temp4, false);
- oled_write(" ", false);
-# else // WPM_ENABLE
- oled_write("WPM: N/A", false);
-# endif // WPM_ENABLE
-}
-
-// Writes the currently used OLED display layout
-void render_keymap(uint8_t row, uint8_t col, bool isLite) {
- // Render the oled layout; lite is 11, regular is 14 characters
- oled_set_cursor(col, row);
- if (isLite) {
- oled_write("KM: ", false);
- } else {
- oled_write("Layout: ", false);
- }
- switch (userspace_config.layout % 3) {
- case 0:
- oled_write("Dvorak", false);
- break;
- case 1:
- oled_write("Tur. F", false);
- break;
- case 2:
- oled_write("Qwerty", false);
- break;
- }
- if (isLite) {
- oled_write(" ", false);
- }
-}
-
-// Writes the currently used OLED display layout
-#ifdef RGB_MATRIX_ENABLE
-void render_rgb_lite(uint8_t row, uint8_t col) {
- // Writes the currently used OLED display layout, 19 characters
- static char rgb_temp4[4] = {0};
- // Render the oled layout
- oled_set_cursor(col, row);
- oled_write("m", false);
- itoa(rgb_matrix_get_mode(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
- oled_write(" h", false);
- itoa(rgb_matrix_get_hue(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
- oled_write(" s", false);
- itoa(rgb_matrix_get_sat(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
- oled_write(" v", false);
- itoa(rgb_matrix_get_val(), rgb_temp4, 10);
- oled_write(rgb_temp4, false);
-}
-#endif // RGB_MATRIX_ENABLE
-
-void render_status_lite(uint8_t row, uint8_t col) {
- // Function to print state information; for low flash memory
- uint8_t this_layer = get_highest_layer(layer_state);
- uint8_t this_mod = get_mods();
-
- // Line 1: Layer State
- render_layer(row + 0, col + 0, this_layer);
-
- // Line 2: Mod or info
- switch (this_layer) {
- // Show RGB mode as an overlay in media mode.
-# ifdef RGB_MATRIX_ENABLE
- case _MEDI:
- render_rgb_lite(row + 1, col + 0);
- break;
-# endif // RGB_MATRIX_ENABLE
- // Show the modifier if nothing else is doing anything
- default:
- render_modifiers_lite(row + 1, col + 0, this_mod);
- break;
- }
-
- // Line 3: WPM and layout
- render_keymap(row + 2, col + 0, true);
- render_wpm(row + 2, col + 11);
-
- // Line 4: Encoder states
-# ifdef SPLIT_KEYBOARD
- if (is_keyboard_left()) {
- render_encoder(row + 3, col + 0, 0, this_layer);
- } else {
- render_encoder(row + 3, col + 0, 1, this_layer);
- }
-# else // SPLIT_KEYBOARD
- render_encoder(row + 3, col + 0, 0, this_layer);
-# endif // SPLIT_KEYBOARD
-}
diff --git a/users/bbaserdem/bb-oled.h b/users/bbaserdem/bb-oled.h
deleted file mode 100644
index a355c88ca9..0000000000
--- a/users/bbaserdem/bb-oled.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-// Contain the main oled writer here
-void oled_task_user(void);
-// Some generic rendering functions
-void render_qmk_logo(uint8_t row, uint8_t col);
-void render_layer(uint8_t row, uint8_t col, uint8_t top_layer);
-void render_modifiers_lite(uint8_t row, uint8_t col, uint8_t mods);
-void render_encoder(uint8_t row, uint8_t col, uint8_t index, uint8_t layer);
-void render_wpm(uint8_t row, uint8_t col);
-void render_keymap(uint8_t row, uint8_t col, bool isLite);
-#ifdef RGB_MATRIX_ENABLE
-void render_rgb_lite(uint8_t row, uint8_t col);
-#endif // RGB_MATRIX_ENABLE
-void render_status_lite(uint8_t row, uint8_t col);
diff --git a/users/bbaserdem/bb-rgb.c b/users/bbaserdem/bb-rgb.c
deleted file mode 100644
index 49b91129ba..0000000000
--- a/users/bbaserdem/bb-rgb.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-rgb.h"
-#include "color.h"
-
-#define X_DIV 224/2
-/* Code relating to per-key RGB LED stuff
- */
-
-// Allow hooking into the RGB matrix indications using keymap code
-
-// Modulates the brightness of indicator
-RGB helper_dimmer(uint8_t r, uint8_t g, uint8_t b) {
- RGB output;
- output.r = r / 2;
- output.g = g / 2;
- output.b = b / 2;
- return output;
-}
-// x range from 0-left to 224-right
-// y range from 0-top to 64-bottom
-void helper_painter(uint8_t led_min, uint8_t led_max, RGB col, uint8_t side) {
- if (side == 1) {
- // Left
- for(uint8_t i = led_min; i <= led_max; i++) {
- if((g_led_config.point[i].x < X_DIV) && (g_led_config.flags[i] & LED_FLAG_INDICATOR)) {
- rgb_matrix_set_color(i, col.r, col.g, col.b);
- }
- }
- } else if (side == 2) {
- // Right
- for(uint8_t i = led_min; i <= led_max; i++) {
- if((g_led_config.point[i].x > X_DIV) && (g_led_config.flags[i] & LED_FLAG_INDICATOR)) {
- rgb_matrix_set_color(i, col.r, col.g, col.b);
- }
- }
- } else if (side == 0) {
- // Both
- for(uint8_t i = led_min; i <= led_max; i++) {
- if(g_led_config.flags[i] & LED_FLAG_INDICATOR) {
- rgb_matrix_set_color(i, col.r, col.g, col.b);
- }
- }
- }
-}
-
-// Allow to turn off global handling
-__attribute__ ((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- return false;
-}
-// Set RGB state depending on layer
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t thisInd = 3;
- RGB thisCol;
- // Load keymap hooks
- if(rgb_matrix_indicators_advanced_keymap(led_min, led_max)) {
- return false;
- }
- // Grab color info
- switch (get_highest_layer(layer_state)) {
- case _GAME: // Set left side as purple
- thisCol = helper_dimmer(RGB_PURPLE);
- thisInd = 1;
- break;
- case _CHAR: // Set full board as gold
- thisCol = helper_dimmer(RGB_GOLD);
- thisInd = 0;
- break;
- case _MEDI: // Set right side as pink
- thisCol = helper_dimmer(RGB_MAGENTA);
- thisInd = 2;
- break;
- case _NAVI: // Set right side as green
- thisCol = helper_dimmer(RGB_GREEN);
- thisInd = 2;
- break;
- case _SYMB: // Set right side as yellow
- thisCol = helper_dimmer(RGB_YELLOW);
- thisInd = 2;
- break;
- case _NUMB: // Set left side as blue
- thisCol = helper_dimmer(RGB_BLUE);
- thisInd = 1;
- break;
- case _FUNC: // Set left side as red
- thisCol = helper_dimmer(RGB_RED);
- thisInd = 1;
- break;
- case _MOUS: // Set left side as blue-green
- thisCol = helper_dimmer(RGB_SPRINGGREEN);
- thisInd = 1;
- break;
- case _MUSI: // Set full board as orange
- thisCol = helper_dimmer(RGB_ORANGE);
- thisInd = 0;
- break;
- }
- helper_painter(led_min, led_max, thisCol, thisInd);
- return false;
-}
-
-// Hook into shutdown code to make all perkey LED's red on hitting reset
-void shutdown_rgb(void) {
- // Flash all the key LED's red on shutdown
- uint16_t timer_start = timer_read();
- rgb_matrix_set_color_all(RGB_CORAL);
- // Delay until this registers
- while(timer_elapsed(timer_start) < 250) {wait_ms(1);}
-}
diff --git a/users/bbaserdem/bb-rgb.h b/users/bbaserdem/bb-rgb.h
deleted file mode 100644
index 3e96b997fe..0000000000
--- a/users/bbaserdem/bb-rgb.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-/* Hooks involving perkey RGB LEDs
- */
-
-// For custom indicators
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max);
-// Hook into shutdown code
-void shutdown_rgb(void);
-void suspend_wakeup_init_rgb(void);
-void suspend_power_down_rgb(void);
diff --git a/users/bbaserdem/bb-underglow.c b/users/bbaserdem/bb-underglow.c
deleted file mode 100644
index 69aae439f4..0000000000
--- a/users/bbaserdem/bb-underglow.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bb-underglow.h"
-
-/* UNDERGLOW IMPLEMENTATION
- */
-
-// Define the layer switching code
-
-// An empty layer on the base
-const rgblight_segment_t PROGMEM bb_base_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 0, HSV_WHITE}
-);
-// Gaming layer is turquoise
-const rgblight_segment_t PROGMEM bb_game_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_PURPLE}
-);
-// Character overlay is chartereuse
-const rgblight_segment_t PROGMEM bb_char_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_GOLD}
-);
-
-// Right-hand layers
-
-// Media layer is orange
-const rgblight_segment_t PROGMEM bb_medi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_MAGENTA}
-);
-// Navigation layer is green
-const rgblight_segment_t PROGMEM bb_navi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_GREEN}
-);
-// Symbol layer is purple
-const rgblight_segment_t PROGMEM bb_symb_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_YELLOW}
-);
-
-// Left-hand layers
-
-// Number layer is blue
-const rgblight_segment_t PROGMEM bb_numb_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_BLUE}
-);
-// Function layer is red
-const rgblight_segment_t PROGMEM bb_func_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_RED}
-);
-// Pointer layer is yellow
-const rgblight_segment_t PROGMEM bb_mous_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_SPRINGGREEN}
-);
-
-// Music playback layer is magenta
-const rgblight_segment_t PROGMEM bb_musi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_ORANGE}
-);
-
-const rgblight_segment_t* const PROGMEM bb_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- bb_base_layer,
- bb_char_layer,
- bb_game_layer,
- bb_medi_layer,
- bb_navi_layer,
- bb_symb_layer,
- bb_numb_layer,
- bb_func_layer,
- bb_mous_layer,
- bb_musi_layer
-);
-
-// Enable the LED switching layers
-void keyboard_post_init_underglow(void) {
- rgblight_layers = bb_rgb_layers;
- // Default rgb mode is rainbow swirl; set this
- rgblight_sethsv_noeeprom(100, 255, 255);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL + 0);
-}
-
-// Set RGBLIGHT state depending on layer
-layer_state_t layer_state_set_underglow(layer_state_t state) {
- // Activate layers if on that region
- rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE));
- rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME));
- rgblight_set_layer_state(_CHAR, layer_state_cmp(state, _CHAR));
- rgblight_set_layer_state(_MEDI, layer_state_cmp(state, _MEDI));
- rgblight_set_layer_state(_NAVI, layer_state_cmp(state, _NAVI));
- rgblight_set_layer_state(_SYMB, layer_state_cmp(state, _SYMB));
- rgblight_set_layer_state(_NUMB, layer_state_cmp(state, _NUMB));
- rgblight_set_layer_state(_FUNC, layer_state_cmp(state, _FUNC));
- rgblight_set_layer_state(_MOUS, layer_state_cmp(state, _MOUS));
- rgblight_set_layer_state(_MUSI, layer_state_cmp(state, _MUSI));
- // Return so other stuff can be done
- return state;
-}
-
-// Hook into shutdown code
-void shutdown_underglow(void) {
- // Make the LED's red on shutdown
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv(HSV_WHITE);
-}
diff --git a/users/bbaserdem/bb-underglow.h b/users/bbaserdem/bb-underglow.h
deleted file mode 100644
index 9cc1db3757..0000000000
--- a/users/bbaserdem/bb-underglow.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include "bbaserdem.h"
-
-/* UNDERGLOW IMPLEMENTATION
- */
-
-// Used to initialize layer switching overlay
-void keyboard_post_init_underglow(void);
-// Used to change RGB underglow layers on keymap layer change
-layer_state_t layer_state_set_underglow(layer_state_t state);
-// Hook into shutdown to show effect on shutdown
-void shutdown_underglow(void);
diff --git a/users/bbaserdem/bbaserdem.c b/users/bbaserdem/bbaserdem.c
deleted file mode 100644
index e0e204c302..0000000000
--- a/users/bbaserdem/bbaserdem.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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 "bbaserdem.h"
-// Language imports
-#include <sendstring_dvorak.h>
-// Need memcpy and memcmp from string.h along with transfer stuff
-#ifdef SPLIT_KEYBOARD
-#include "transactions.h"
-#include <string.h>
-#endif // SPLIT_KEYBOARD
-
-/*-------------------------*\
-|*-----KEYBOARD CONFIG-----*|
-\*-------------------------*/
-userspace_config_t userspace_config;
-userspace_runtime_t userspace_runtime;
-
-/*---------------------------------*\
-|*----SPLIT KEYBOARD TRANSPORT-----*|
-\*---------------------------------*/
-#ifdef SPLIT_KEYBOARD
-userspace_config_t transport_userspace_config;
-userspace_runtime_t transport_userspace_runtime;
-
-// Translate the RPC data to the local variable
-void userspace_config_sync(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) {
- // Copy incoming data to local variable
- if (in_buflen == sizeof(transport_userspace_config)) {
- memcpy(&transport_userspace_config, in_data, in_buflen);
- }
- // There is no data to send back; so no output handling
-}
-void userspace_runtime_sync(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) {
- // Copy incoming data to local variable
- if (in_buflen == sizeof(transport_userspace_runtime)) {
- memcpy(&transport_userspace_runtime, in_data, in_buflen);
- }
- // There is no data to send back; so no output handling
-}
-
-// Either send or receive the correct data
-void userspace_transport_update(void) {
- if (is_keyboard_master()) {
- // If we are the main device; we want to send info.
- transport_userspace_config.raw = userspace_config.raw;
- transport_userspace_runtime.raw = userspace_runtime.raw;
- } else {
- // If we are the secondary device; we want to receive info, and save to eeprom.
- userspace_config.raw = transport_userspace_config.raw;
- userspace_runtime.raw = transport_userspace_runtime.raw;
- }
-}
-
-// Initiate the protocol on sync
-void userspace_transport_sync(bool force_sync) {
- if (is_keyboard_master()) {
- // Keep track of the last state
- static userspace_config_t last_userspace_config;
- static userspace_runtime_t last_userspace_runtime;
- bool needs_sync = false;
-
- // Check if the config values are different
- if (memcmp(&transport_userspace_config, &last_userspace_config, sizeof(transport_userspace_config))) {
- needs_sync = true;
- memcpy(&last_userspace_config, &transport_userspace_config, sizeof(transport_userspace_config));
- }
- // Perform the sync if requested
- if (needs_sync || force_sync) {
- transaction_rpc_send(RPC_ID_CONFIG_SYNC, sizeof(transport_userspace_config), &transport_userspace_config);
- needs_sync = false;
- }
-
- // Check if the runtime values are different
- if (memcmp(&transport_userspace_runtime, &last_userspace_runtime, sizeof(transport_userspace_runtime))) {
- needs_sync = true;
- memcpy(&last_userspace_runtime, &transport_userspace_runtime, sizeof(transport_userspace_runtime));
- }
-
- // Perform the sync if requested
- if (needs_sync || force_sync) {
- transaction_rpc_send(RPC_ID_RUNTIME_SYNC, sizeof(transport_userspace_runtime), &transport_userspace_runtime);
- needs_sync = false;
- }
- }
-}
-#endif // SPLIT_KEYBOARD
-
-/*---------------------------*\
-|*-----KEYBOARD PRE INIT-----*|
-\*---------------------------*/
-/* This code runs before anything is started.
- * Good for early hardware setup
- */
-__attribute__ ((weak)) void keyboard_pre_init_keymap(void) {}
-__attribute__ ((weak)) void keyboard_pre_init_user(void) {
- // Keymap specific stuff
- keyboard_pre_init_keymap();
-}
-
-/*---------------------*\
-|*-----MATRIX INIT-----*|
-\*---------------------*/
-/* This code runs once midway thru the firmware process.
- * So far, sets the base layer and fixes unicode mode
- */
-__attribute__ ((weak)) void matrix_init_keymap(void) {}
-void matrix_init_user (void) {
- // Keymap specific things
- matrix_init_keymap();
-}
-
-/*----------------------------*\
-|*-----KEYBOARD POST INIT-----*|
-\*----------------------------*/
-/* This code runs after anything is started.
- * Good for late hardware setup, like setting up layer specifications
- */
-__attribute__ ((weak)) void keyboard_post_init_keymap(void) {}
-__attribute__ ((weak)) void keyboard_post_init_user(void) {
- // Fix beginning base layer, in case some other firmware was flashed
- // set_single_persistent_default_layer(_BASE);
-
- // Unicode mode
-# ifdef UNICODEMAP_ENABLE
- set_unicode_input_mode(UC_LNX);
-# endif // UNICODEMAP_ENABLE
-
- // Split keyboard halves communication
-# ifdef SPLIT_KEYBOARD
- // Register the transactions
- transaction_register_rpc( RPC_ID_CONFIG_SYNC, userspace_config_sync );
- transaction_register_rpc(RPC_ID_RUNTIME_SYNC, userspace_runtime_sync);
- // Load default config values
- if (is_keyboard_master()) {
- // If we are main; load from eeconfig
- userspace_config.raw = eeconfig_read_user();
- // And update the transport variable
- userspace_transport_update();
- // Do one forced transfer to sync halves
- userspace_transport_sync(true);
- } else {
- // Just sync the data received
- userspace_transport_update();
- }
-# else // SPLIT_KEYBOARD
- // If we are not split; just load from eeprom
- userspace_config.raw = eeconfig_read_user();
-# endif // SPLIT_KEYBOARD
-
- // Backlight LED
-# ifdef BACKLIGHT_ENABLE
- keyboard_post_init_backlight();
-# endif // BACKLIGHT_ENABLE
-
- // RGB underglow
-# ifdef RGBLIGHT_ENABLE
- keyboard_post_init_underglow();
-# endif // RGBLIGHT_ENABLE
-
- // Keymap specific stuff
- keyboard_post_init_keymap();
-}
-
-/*---------------------------*\
-|*-----HOUSEKEEPING TASK-----*|
-\*---------------------------*/
-/* I have no idea what this does
- */
-__attribute__ ((weak)) void housekeeping_task_keymap(void) {}
-void housekeeping_task_user(void) {
- // Check eeprom every now and then
- static userspace_config_t prev_userspace_config;
- static fast_timer_t throttle_timer = 0;
- static bool init_flag = true;
-
- // Read this if we never read it before
- if (init_flag) {
- init_flag = false;
- prev_userspace_config.raw = eeconfig_read_user();
- }
-
- // Throttled tasks here
- if (timer_elapsed_fast(throttle_timer) >= HOUSEKEEPING_THROTTLE_INTERVAL_MS) {
- // Refresh timer
- throttle_timer = timer_read_fast();
- // Check userspace config for eeprom updates
- if (memcmp(&prev_userspace_config, &userspace_config, sizeof(userspace_config))) {
- memcpy(&prev_userspace_config, &userspace_config, sizeof(userspace_config));
- eeconfig_update_user(userspace_config.raw);
- }
- }
-
- // Do transport stuff
-# ifdef SPLIT_KEYBOARD
- userspace_transport_update();
- userspace_transport_sync(false);
-# endif // SPLIT_KEYBOARD
-
- // Hook to keymap code
- housekeeping_task_keymap();
-}
-
-/*-----------------------*\
-|*-----EECONFIG INIT-----*|
-\*-----------------------*/
-/* Default values to send to the eeprom
- */
-void eeconfig_init_user(void) {
- // Set everything to default
- userspace_config.raw = 0;
- // Set encoder states to sane defaults if enabled
-# ifdef ENCODER_ENABLE
- reset_encoder_state();
-# endif // ENCODER_ENABLE
-}
-
-/*------------------------*\
-|*-----PROCESS RECORD-----*|
-\*------------------------*/
-/* Process record: custom keycodes to process here
- * Allow also the following codes to hook here as well;
- * Macro definitions
- * Audio hooks
- */
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // Return after running through all individual hooks
- return
- process_record_keymap(keycode, record) &&
-# ifdef AUDIO_ENABLE
- process_record_audio(keycode, record) &&
-# endif // AUDIO_ENABLE
-# ifdef ENCODER_ENABLE
- process_record_encoder(keycode, record) &&
-# endif // ENCODER_ENABLE
- process_record_macro(keycode, record);
-}
-
-/*---------------------*\
-|*-----MATRIX SCAN-----*|
-\*---------------------*/
-/* This code runs every frame
- * I used to check for layer switching here, but layer state is better used.
- * Try to not put anything here; as it runs hundreds time per second-ish
- */
-__attribute__ ((weak)) void matrix_scan_keymap(void) { }
-void matrix_scan_user (void) {
- // Keymap specific scan function
- matrix_scan_keymap();
-}
-
-/*---------------------*\
-|*-----LAYER STATE-----*|
-\*---------------------*/
-/* This code runs after every layer change
- * State represents the new layer state.
- */
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-layer_state_t layer_state_set_user(layer_state_t state) {
- // Keymap layer state setting
- state = layer_state_set_keymap(state);
- // For underglow stuff
-# ifdef RGBLIGHT_ENABLE
- state = layer_state_set_underglow(state);
-# endif // RGBLIGHT_ENABLE
- // Audio playback
-# ifdef AUDIO_ENABLE
- state = layer_state_set_audio(state);
-# endif // AUDIO_ENABLE
-
- return state;
-}
-
-/*-----------------------------*\
-|*-----DEFAULT LAYER STATE-----*|
-\*-----------------------------*/
-/* This code runs after every time default base layer is changed
- */
-__attribute__ ((weak))
-layer_state_t default_layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- // Keymap level code
- state = default_layer_state_set_keymap(state);
- return state;
-}
-
-/*------------------------*\
-|*-----LED SET KEYMAP-----*|
-\*------------------------*/
-/* Code for LED indicators
- * I'm not sure when exactly does this code run
- */
-__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) {}
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-
-/*-----------------*\
-|*-----SUSPEND-----*|
-\*-----------------*/
-/* Suspend stuff here, mostly for the rgb lighting.
- */
-__attribute__ ((weak)) void suspend_power_down_keymap (void) { }
-void suspend_power_down_user(void) {
- suspend_power_down_keymap();
- // RGB matrix sleep hook
-# ifdef RGB_MATRIX_ENABLE
- suspend_power_down_rgb();
-# endif // RGB_MATRIX_ENABLE
-}
-__attribute__ ((weak)) void suspend_wakeup_init_keymap (void) { }
-void suspend_wakeup_init_user(void) {
- suspend_wakeup_init_keymap();
- // RGB matrix sleep hook
-# ifdef RGB_MATRIX_ENABLE
- suspend_wakeup_init_rgb();
-# endif // RGB_MATRIX_ENABLE
-}
-
-<<<<<<< HEAD
- state = layer_state_set_keymap (state);
-#ifdef RGBLIGHT_ENABLE
- // Change RGB lighting depending on the last layer activated
- rgblight_change( get_highest_layer(state) );
-#endif
- return state;
-||||||| f439fe6055
- state = layer_state_set_keymap (state);
-#ifdef RGBLIGHT_ENABLE
- // Change RGB lighting depending on the last layer activated
- rgblight_change( biton32(state) );
-#endif
- return state;
-=======
-/*------------------*\
-|*-----SHUTDOWN-----*|
-\*------------------*/
-/* Shutdown stuff here; for when entering bootmode.
- */
-__attribute__ ((weak)) void shutdown_keymap (void) { }
-void shutdown_user(void) {
- // Underglow LED hook on boot
-# ifdef RGBLIGHT_ENABLE
- shutdown_underglow();
-# endif // RGBLIGHT_ENABLE
- // Perkey led hook on boot
-# ifdef RGB_MATRIX_ENABLE
- shutdown_rgb();
-# endif // RGB_MATRIX_ENABLE
- // Keymap hooks
- shutdown_keymap();
->>>>>>> upstream/master
-}
diff --git a/users/bbaserdem/bbaserdem.h b/users/bbaserdem/bbaserdem.h
deleted file mode 100644
index bfa083b870..0000000000
--- a/users/bbaserdem/bbaserdem.h
+++ /dev/null
@@ -1,573 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-#include QMK_KEYBOARD_H
-#include "quantum.h"
-#include "keymap_dvorak.h"
-
-/* Besides loading libraries and definitions, this file has my layout defs
- * LAYOUTS:
- * This file has a couple layouts I use; so that the general changes can be
- * propagated by only editing this file.
- */
-
-// Macros to use, this has base level code so not affected by enabled features
-#include "bb-macro.h"
-// Audio from onboard speakers
-#ifdef AUDIO_ENABLE
-#include "bb-audio.h"
-#endif // AUDIO_ENABLE
-// Keycap backlight using non-rgb LEDs
-#ifdef BACKLIGHT_ENABLE
-#include "bb-backlight.h"
-#endif // BACKLIGHT_ENABLE
-// Underglow light using rgb LEDs
-#ifdef RGBLIGHT_ENABLE
-#include "bb-underglow.h"
-#endif // RGBLIGHT_ENABLE
-// Keycap backlight using rgb LEDs
-#ifdef RGB_MATRIX_ENABLE
-#include "bb-rgb.h"
-#endif // RGB_MATRIX_ENABLE
-// Rotary encoder
-#ifdef ENCODER_ENABLE
-#include "bb-encoder.h"
-#endif // ENCODER_ENABLE
-// Oled screen
-#ifdef OLED_ENABLE
-#include "bb-oled.h"
-#endif // OLED_ENABLE
-
-// Structure to keep runtime info on encoder state
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_sleep;
- };
-} userspace_runtime_t;
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t e0base :4; // ( 4:0) The encoder state on most layers; regular function
- uint8_t e1base :4; // ( 8:1) 9 states for this; 4 bits
- uint8_t e0point :2; // (10:1) The encoder state on mouse layer; moves pointer
- uint8_t e1point :2; // (12:1) 4 states for this; 2 bits
- uint8_t e0rgb :4; // (16:2) The encoder state on media layer; controls light
- uint8_t e1rgb :4; // (20:2) 5 states for this; 3 bits but 4 is better
- uint8_t layout :2; // (22:2) Stores keymap layout; 3 states is good on 2 bits
- uint16_t :10; // (32:3) Padding here, free space for 10 more bits
- };
-} userspace_config_t;
-
-// Broadcast us to everyone else
-extern userspace_runtime_t userspace_runtime;
-extern userspace_config_t userspace_config;
-
-// Function definitions that can be accessed through specific keymaps
-// Runs before all initialization
-void keyboard_pre_init_keymap(void);
-// For code that launches once midway through initialization
-void matrix_init_keymap(void);
-// For code that launches after initialization is finished.
-void keyboard_post_init_keymap(void);
-// These will be delegated to keymap specific stuff (weak definition)
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-// This code runs on every tick
-void matrix_scan_keymap(void);
-// This code runs after every layer change
-layer_state_t layer_state_set_keymap(layer_state_t state);
-// This code runs when the default layer changes
-layer_state_t default_layer_state_set_keymap (layer_state_t state);
-// Some code
-void housekeeping_task_user(void);
-// This code runs to set LED states
-void led_set_keymap(uint8_t usb_led);
-// For code that runs on suspend
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-// For code that runs on powerdown
-void shutdown_keymap(void);
-
-// Make it so that keymaps can use KEYMAP_SAFE_RANGE for custom keycodes
-#ifdef KEYMAP_SAFE_RANGE
-#define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
-#else
-#define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
-#endif
-
-// Custom macro keycode ranges
-enum userspace_custom_keycodes {
- // Safe stuff
- BB_SAFE = PLACEHOLDER_SAFE_RANGE,
- // Double entry macros
- DBL_ANG,
- DBL_PAR,
- DBL_CBR,
- DBL_BRC,
- // Macro key
- BB_PGPK,
- // Unicode strings
-# ifdef UNICODEMAP_ENABLE
- BB_LENY,
- BB_TABL,
- TR_FLAG,
-# endif // UNICODEMAP_ENABLE
- // Encoder buttons
-# ifdef ENCODER_ENABLE
- BB_ENC0,
- BB_ENC1,
-# endif // ENCODER_ENABLE
- // Oled editor
-# ifdef OLED_ENABLE
- BB_OLED,
-# endif // OLED_ENABLE
- //use for keymap specific codes
- KEYMAP_SAFE_RANGE
-};
-// Mask these keycodes if required features are not enabled
-#ifndef UNICODEMAP_ENABLE
-#define BB_LENY KC_NO
-#define BB_TABL KC_NO
-#define TR_FLAG KC_NO
-#endif // UNICODEMAP_ENABLE
-#ifndef ENCODER_ENABLE
-#define BB_ENC0 KC_NO
-#define BB_ENC1 KC_NO
-#endif // ENCODER_ENABLE
-
-/// Enumerate of layers
-enum userspace_layers {
- _BASE = 0, // Base layer
- _CHAR, // Characters layer
- _GAME, // Game layer
- _MEDI, // R3: Media layer
- _NAVI, // R3: Navigation layer
- _SYMB, // R1: Symbols layer
- _NUMB, // L1: Numbers layer
- _FUNC, // L2: Function keys layer
- _MOUS, // L3: Mouse keys layer
- _MUSI // Music overlay
-};
-
-// Use 7 wide characters for keymaps, to keep things aligned with 4 tabs
-#define _______ KC_TRNS
-#define XXXXXXX KC_NO
-
-// These defines allow multiple multi-parameter definitions to expand
-// for these boards
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
-#define LAYOUT_ortho_3x10_wrapper(...) LAYOUT_ortho_3x10(__VA_ARGS__)
-#define LAYOUT_split_3x6_3_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
-#define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
-
-// Masks
-#define ___1___ _______
-#define ___2___ _______,_______
-#define ___3___ _______,_______,_______
-#define ___4___ _______,_______,_______,_______
-#define ___5___ _______,_______,_______,_______,_______
-#define ___6___ _______,_______,_______,_______,_______,_______
-#define xxx1xxx KC_NO
-#define xxx2xxx KC_NO, KC_NO
-#define xxx3xxx KC_NO, KC_NO, KC_NO
-#define xxx4xxx KC_NO, KC_NO, KC_NO, KC_NO
-#define xxx5xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define xxx6xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define xxx1xxx KC_NO
-#define xxx3xxx KC_NO, KC_NO, KC_NO
-#define xxx5xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define xxx6xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-
-// Quick macros: in dvorak
-#define BB_UNDO LCTL(KC_SLSH) // Ctrl + Z
-#define BB_REDO LCTL(KC_T) // Ctrl + Y
-#define BB_YANK LCTL(KC_I) // Ctrl + C
-#define BB_CUT LCTL(KC_B) // Ctrl + X
-#define BB_PSTE LCTL(KC_DOT) // Ctrl + V
-
-// Audio keys
-#ifdef AUDIO_ENABLE
-#define MU_REC KC_LCTL
-#define MU_STOP KC_LALT
-#define MU_PLAY KC_LGUI
-#define MU_FAST KC_UP
-#define MU_SLOW KC_DOWN
-#define MU_MASK KC_A
-#define BB_SND MU_ON
-#ifdef TAP_DANCE_ENABLE
-#define MU_TEMP TD(TD_AUDIO_TEMPO)
-#else // TAP_DANCE_ENABLE
-#define MU_TEMP KC_DOWN
-#endif // TAP_DANCE_ENABLE
-#else // AUDIO_ENABLE
-#define MU_REC KC_NO
-#define MU_STOP KC_NO
-#define MU_PLAY KC_NO
-#define MU_FAST KC_NO
-#define MU_TEMP KC_NO
-#define MU_SLOW KC_NO
-#define MU_MASK KC_NO
-#define BB_SND KC_MUTE
-#endif // AUDIO_ENABLE
-
-// Unicode keys
-#ifdef UNICODEMAP_ENABLE
-#define TR_ACIR XP(LOW_A_CIRC, UPC_A_CIRC )
-#define TR_CCED XP(LOW_C_CEDI, UPC_C_CEDI )
-#define TR_GBRE XP(LOW_G_BREV, LOW_G_BREV )
-#define TR_ICIR XP(LOW_I_CIRC, LOW_I_CIRC )
-#define TR_I_NO XP(LOW_I_DOTL, LOW_I_DOTL )
-#define TR_IDOT XP(LOW_I_DOTT, LOW_I_DOTT )
-#define TR_ODIA XP(LOW_O_DIAE, LOW_O_DIAE )
-#define TR_SCED XP(LOW_S_CEDI, LOW_S_CEDI )
-#define TR_UCIR XP(LOW_U_CIRC, LOW_U_CIRC )
-#define TR_UDIA XP(LOW_U_DIAE, LOW_U_DIAE )
-#define GR_ALP XP(LOW_ALPHA, UPC_ALPHA )
-#define GR_BET XP(LOW_BETA, UPC_BETA )
-#define GR_GAM XP(LOW_GAMMA, UPC_GAMMA )
-#define GR_DEL XP(LOW_DELTA, UPC_DELTA )
-#define GR_EPS XP(LOW_EPSILON,UPC_EPSILON)
-#define GR_ZET XP(LOW_ZETA, UPC_ZETA )
-#define GR_ETA XP(LOW_ETA, UPC_ETA )
-#define GR_THE XP(LOW_THETA, UPC_THETA )
-#define GR_IOT XP(LOW_IOTA, UPC_IOTA )
-#define GR_KAP XP(LOW_KAPPA, UPC_KAPPA )
-#define GR_LAM XP(LOW_LAMBDA, UPC_LAMBDA )
-#define GR_MU XP(LOW_MU, UPC_MU )
-#define GR_NU XP(LOW_NU, UPC_NU )
-#define GR_XI XP(LOW_XI, UPC_XI )
-#define GR_OMI XP(LOW_OMICRON,UPC_OMICRON)
-#define GR_PI XP(LOW_PI, UPC_PI )
-#define GR_RHO XP(LOW_RHO, UPC_RHO )
-#define GR_SIG XP(LOW_SIGMA, UPC_SIGMA )
-#define GR_TAU XP(LOW_TAU, UPC_TAU )
-#define GR_UPS XP(LOW_UPSILON,UPC_UPSILON)
-#define GR_PHI XP(LOW_PHI, UPC_PHI )
-#define GR_CHI XP(LOW_CHI, UPC_CHI )
-#define GR_PSI XP(LOW_PSI, UPC_PSI )
-#define GR_OME XP(LOW_OMEGA, UPC_OMEGA )
-#define BB_ELLI X(ELLIPSIS)
-#define BB_PLNK X(PLANCK_CON)
-#define BB_ANGS X(ANGSTROM)
-#define BB_BITC X(BITCOIN)
-#else // UNICODEMAP_ENABLE
-#define TR_ACIR KC_A
-#define TR_CCED KC_C
-#define TR_GBRE KC_G
-#define TR_ICIR KC_I
-#define TR_I_NO KC_I
-#define TR_IDOT KC_I
-#define TR_ODIA KC_O
-#define TR_SCED KC_S
-#define TR_UCIR KC_U
-#define TR_UDIA KC_U
-#define GR_ALP KC_NO
-#define GR_BET KC_NO
-#define GR_GAM KC_NO
-#define GR_DEL KC_NO
-#define GR_EPS KC_NO
-#define GR_ZET KC_NO
-#define GR_ETA KC_NO
-#define GR_THE KC_NO
-#define GR_IOT KC_NO
-#define GR_KAP KC_NO
-#define GR_LAM KC_NO
-#define GR_MU KC_NO
-#define GR_NU KC_NO
-#define GR_XI KC_NO
-#define GR_OMI KC_NO
-#define GR_PI KC_NO
-#define GR_RHO KC_NO
-#define GR_SIG KC_NO
-#define GR_TAU KC_NO
-#define GR_UPS KC_NO
-#define GR_PHI KC_NO
-#define GR_CHI KC_NO
-#define GR_PSI KC_NO
-#define GR_OME KC_NO
-#define BB_ELLI KC_NO
-#define BB_PLNK KC_NO
-#define BB_ANGS KC_NO
-#define BB_BITC KC_NO
-#endif // UNICODEMAP_ENABLE
-
-// MOD-tap definitions
-#define GUI_A MT(MOD_LGUI, DV_A)
-#define ALT_O MT(MOD_LALT, DV_O)
-#define CTRL_E MT(MOD_LCTL, DV_E)
-#define SHIFT_U MT(MOD_LSFT, DV_U)
-#define ALTGR_Q MT(MOD_RALT, DV_Q)
-#define GUI_S MT(MOD_RGUI, DV_S)
-#define ALT_N MT(MOD_LALT, DV_N)
-#define CTRL_T MT(MOD_LCTL, DV_T)
-#define SHIFT_H MT(MOD_LSFT, DV_H)
-#define ALTGR_V MT(MOD_RALT, DV_V)
-
-// Layer switches
-#define MED_DEL LT(_MEDI, KC_DEL )
-#define NAV_TAB LT(_NAVI, KC_TAB )
-#define SYM_SPC LT(_SYMB, KC_SPC )
-#define NUM_ENT LT(_NUMB, KC_ENT )
-#define FUN_ESC LT(_FUNC, KC_ESC )
-#define MOU_BSP LT(_MOUS, KC_BSPC)
-
-// Layer switches
-#define BB_CHAR OSL(_CHAR)
-#define BB_GAME TG(_GAME)
-
-/* Depending on how the layouts change with language; the keys are shown as;
- * ┌────────────────────────────────────────────────┐
- * │AltGr -none- Shift Shift+AltGr │
- * └────────────────────────────────────────────────┘
- * If there is an exclamation mark; it indicates a dead key on this map.
- */
-
-/* Base layout
- * DVORAK
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * ` ~ │ ' " │ , < │ . > │ p P │ y Y │ │ f F │ g G │ c C │ r R │ l L │ < >
- * ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
- * \ | │ a A │ o O │ e E │ u U │ i I │ │ d D │ h H │ t T │ n N │ s S │ - _
- * ├─Gui─┼─Alt─┼─Ctr─┼─Sft─┼─────┤ ├─────┼─Sft─┼─Ctr─┼─Alt─┼─Gui─┤
- * / ? │ ; : │ q Q │ j J │ k K │ x X │ │ b B │ m M │ w W │ v V │ z Z │ = +
- * └─────┴AltGr┴─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┴AltGr┴─────┘
- * │ Del │ Tab │Space│ │Enter│ Esc │BkSpc│
- * └─Med─┴─Nav─┴─Sym─┘ └─Num─┴─Fun─┴─Mou─┘
- * TURKISH F
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * ¬+ *±│@f F │ g G │ ğ Ğ │¶ı I │ôo OÔ│ │¥d D │®r R │ n N │°h H │£p P │|< >¦
- * !├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼────!┤ !
- * `x Xà│ûu UÛ│îi İÎ│€e E │âa AÂ│ûü ÜÛ│ │₺t T │ k K │µm M │ l L │´y Yá│#ş Şǎ
- * ! !├─Gui─┼─Alt─┼─Ctr─┼─Sft─┼─────┤ ├─────┼─Sft─┼─Ctr─┼─Alt!┼─Gui─┤
- * äq Qå│«j J<│»ö Ö>│“v V │¢c C©│”ç Ç │ │ z Z │§s S │×b B │÷. :ȧ│·, ; │~w W
- * └─────┴AltGr┴─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┴AltGr┴─────┘
- * │ Del │ Tab │Space│ │Enter│ Esc │BkSpc│
- * └─Med─┴─Nav─┴─Sym─┘ └─Num─┴─Fun─┴─Mou─┘
- * The thing about this layout is that these will fit most boards I have.
- */
-#define _BL1_5_ DV_QUOT,DV_COMM,DV_DOT, DV_P, DV_Y
-#define _BR1_5_ DV_F, DV_G, DV_C, DV_R, DV_L
-#define _BL2_5_ GUI_A, ALT_O, CTRL_E, SHIFT_U,DV_I
-#define _BR2_5_ DV_D, SHIFT_H,CTRL_T, ALT_N, GUI_S
-#define _BL3_5_ DV_SCLN,ALTGR_Q,DV_J, DV_K, DV_X
-#define _BR3_5_ DV_B, DV_M, DV_W, ALTGR_V,DV_Z
-#define _BL4_3_ MED_DEL,NAV_TAB,SYM_SPC
-#define _BR4_3_ NUM_ENT,FUN_ESC,MOU_BSP
-// The extra line for the 6th (or 0th) row
-#define _BL1_1_ DV_GRV
-#define _BR1_1_ KC_NUBS
-#define _BL2_1_ DV_BSLS
-#define _BR2_1_ DV_MINS
-#define _BL3_1_ DV_SLSH
-#define _BR3_1_ DV_EQL
-
-/* Extra characters layer
- * This is accessed using unicode; so IBus compatible apps only.
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │TrFlg│Lenny│Table│ π │ υ │ │ φ │ γ │ χ │ ρ │ λ │
- * ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
- * │ α │ ο │ ε │ ψ │ ι │ │ δ │ η │ τ │ ν │ σ │
- * ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
- * │ ₿ │ θ │ ℏ │ κ │ ξ │ │ β │ μ │ ω │ Å │ ζ │
- * └─────┴─────┴─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┴─────┴─────┘
- * │ Shf │ ... │ GPG │ │ │ │ Shf │
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
- *
- */
-#define _CL1_5_ TR_FLAG,BB_LENY,BB_TABL,GR_PI, GR_UPS
-#define _CR1_5_ GR_PHI, GR_GAM, GR_CHI, GR_RHO, GR_LAM
-#define _CL2_5_ GR_ALP, GR_OMI, GR_EPS, GR_PSI, GR_IOT
-#define _CR2_5_ GR_DEL, GR_ETA, GR_TAU, GR_NU, GR_SIG
-#define _CL3_5_ BB_BITC,GR_THE, BB_PLNK,GR_KAP, GR_XI
-#define _CR3_5_ GR_BET, GR_MU, GR_OME, BB_ANGS,GR_ZET
-#define _CL4_3_ KC_RSFT,BB_ELLI,BB_PGPK
-#define _CR4_3_ XXXXXXX,XXXXXXX,KC_LSFT
-
-/* Game layer
- * This layer turns off the tap-hold keys for the left half.
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ Q │ W │ E │ R │ T │
- * ├─────┼─────┼─────┼─────┼─────┤
- * Tab │ A │ S │ D │ F │ G │
- * ├─────┼─────┼─────┼─────┼─────┤
- * Shift│ Z │ X │ C │ V │ B │
- * └─────┴─────┴─────┼─────┼─────┼─────┐
- * │ Esc │Enter│Space│
- * └─────┴─────┴─────┘
- */
-#define _GA1_5_ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _GA1_1_ _______
-#define _GA2_5_ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _GA2_1_ KC_TAB
-#define _GA3_5_ KC_Z, KC_X, KC_C, KC_V, KC_B
-#define _GA3_1_ KC_LSFT
-#define _GA4_3_ KC_ESC, KC_ENT, KC_SPC
-
-/* Media layer
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │Speed│ Mod │ Hue │ Sat │ Bri │ RGB light control
- * ├─────┼─────┼─────┼─────┼─────┤
- * │Togg.│Prev.│MuTog│MuStp│Next │ Media control
- * ├─────┼─────┼─────┼─────┼─────┤
- * │Sink │Vol -│ Mut │Eject│Vol +│ Volume control
- * ┌─────┼─────┼─────┼─────┴─────┴─────┘
- * │OledL│Veloc│Music│ Feature control on keyboard
- * └─────┴─────┴─────┘
- */
-#define _ME1_5_ RGB_SPI,RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI
-#define _ME2_5_ RGB_TOG,KC_MPRV,KC_MPLY,KC_MSTP,KC_MNXT
-#define _ME3_5_ KC_F13, KC_VOLD,KC_MUTE,KC_EJCT,KC_VOLU
-#define _ME4_3_ BB_OLED,VLK_TOG,MU_TOG
-
-/* Navigation layer
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │Redo │Paste│Yank │ Cut │PrScr│
- * ├─────┼─────┼─────┼─────┼─────┤
- * │Undo │ < │ v │ ^ │ > │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ Ins │Home │PgDwn│PgUp │ End │
- * ┌─────┼─────┼─────┼─────┴─────┴─────┘
- * │Enter│ Esc │BkSpc│
- * └─────┴─────┴─────┘
- */
-#define _NA1_5_ BB_REDO,BB_PSTE,BB_YANK,BB_CUT, KC_PSCR
-#define _NA2_5_ BB_UNDO,KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
-#define _NA3_5_ KC_INS, KC_HOME,KC_PGDN,KC_PGUP,KC_END
-#define _NA4_3_ KC_ENT, KC_ESC, KC_BSPC
-
-/* Symbols layer
- * This layer has the central columns shifted for convenience
- * DVORAK
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ ` │ { │ } │ / │ = │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ ~ │ [ │ ] │ ? │ + │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │CapsL│ ( │ ) │ \ │ | │
- * ┌─────┼─────┼─────┼─────┴─────┴─────┘
- * │Enter│ Esc │BkSpc│
- * └─────┴─────┴─────┘
- * Turkish F
- * (AltGr is right on the central column, red. keys on main layer are omitted)
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ + ¬ │ / \ │ - | │ │ │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ * ± │ ? ¿ │ _ │ │ │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │CapsL│ │ │ │ │
- * ┌─────┼─────┼─────┼─────┴─────┴─────┘
- * │Enter│ Esc │BkSpc│
- * └─────┴─────┴─────┘
- * QWERTY
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ ` │ - │ = │ { │ } │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ ~ │ _ │ + │ [ │ ] │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │CapsL│ ( │ ) │ \ │ | │
- * ┌─────┼─────┼─────┼─────┴─────┴─────┘
- * │Enter│ Esc │BkSpc│
- * └─────┴─────┴─────┘
- */
-#define _SY1_5_ DV_GRV, DV_LCBR,DV_RCBR,DV_SLSH,DV_EQL
-#define _SY2_5_ DV_TILD,DV_LBRC,DV_RBRC,DV_QUES,DV_PLUS
-#define _SY3_5_ KC_CAPS,DV_LPRN,DV_RPRN,DV_BSLS,DV_PIPE
-#define _SY4_3_ KC_ENT, KC_ESC, KC_BSPC
-
-/* Numbers layer
- * This layer contains numbers and the associated symbols.
- * DVORAK
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ < │ 7 & │ 8 * │ 9 ( │ 0 ) │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ _ │ 4 $ │ 5 % │ 6 ^ │ - │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ > │ 1 ! │ 2 @ │ 3 # │Char.│
- * └─────┴─────┴─────┼─────┼─────┼─────┐
- * │ Del │ Tab │Space│
- * └─────┴─────┴─────┘
- * Turkish F
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ < | │{7 ' │[8 ( │]9 )±│}0 =°│
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ │¼4 $ │½5 %⅜│¾6 & │ │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ > ¦ │¹1 !¡│²2 " │#3 ^³│Char.│
- * └─────┴─────┴─────┼─────┼─────┼─────┐
- * │ Del │ Tab │Space│
- * └─────┴─────┴─────┘
- */
-#define _NU1_5_ KC_NUBS,KC_7, KC_8, KC_9, KC_0
-#define _NU2_5_ DV_UNDS,KC_4, KC_5, KC_6, DV_MINS
-#define _NU3_5_ LSFT(KC_NUBS), KC_1, KC_2, KC_3, BB_CHAR
-#define _NU4_3_ KC_DEL, KC_TAB, KC_SPC
-
-/* Function layer
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │ F01 │ F02 │ F03 │ F04 │EEPRM│
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ F05 │ F06 │ F07 │ F08 │EEPRM│
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ F09 │ F10 │ F11 │ F12 │GameL│
- * └─────┴─────┴─────┼─────┼─────┼─────┐
- * │ Del │ Tab │Space│
- * └─────┴─────┴─────┘
- */
-#define _FU1_5_ KC_F1, KC_F2, KC_F3, KC_F4, RESET
-#define _FU2_5_ KC_F5, KC_F6, KC_F7, KC_F8, EE_CLR
-#define _FU3_5_ KC_F9, KC_F10, KC_F11, KC_F12, BB_GAME
-#define _FU4_3_ KC_DEL, KC_TAB, KC_SPC
-
-/* Mouse layer
- * ┌─────┬─────┬─────┬─────┬─────┐
- * │Slow │Right│ Mid │ Lft │Fast │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ |<| │ |v| │ |^| │ |>| │ Bt4 │
- * ├─────┼─────┼─────┼─────┼─────┤
- * │ <<< │ vvv │ ^^^ │ >>> │ Bt5 │
- * └─────┴─────┴─────┼─────┼─────┼─────┐
- * │ Del │ Tab │Space│
- * └─────┴─────┴─────┘
- */
-#define _MO1_5_ KC_ACL0,KC_BTN1,KC_BTN2,KC_BTN3,KC_ACL2
-#define _MO2_5_ KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_BTN4
-#define _MO3_5_ KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_BTN5
-#define _MO4_3_ KC_DEL, KC_TAB, KC_SPC
-
-/* Music layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │
- * └───┴───┴───┼───┼───┼───┼───┼───┼───┼───┴───┴───┘
- * │Rec│Stp│Ply│Tmp│Mod│Off│
- * └───┴───┴───┴───┴───┴───┘
- */
-#define _MUL_3_ MU_REC, MU_STOP,MU_PLAY
-#define _MUR_3_ MU_TEMP,MU_MOD, MU_TOG
-#define _MU_01_ MU_MASK
-#define _MU_02_ MU_MASK,MU_MASK
-#define _MU_03_ MU_MASK,MU_MASK,MU_MASK
-#define _MU_06_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK
-#define _MU_08_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK
-#define _MU_10_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK
-#define _MU_12_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK
diff --git a/users/bbaserdem/config.h b/users/bbaserdem/config.h
deleted file mode 100644
index 3c467d5e7d..0000000000
--- a/users/bbaserdem/config.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2021 Batuhan Başerdem
- * <baserdem.batuhan@gmail.com> @bbaserdem
- *
- * 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
-
-/* CONFIG
- * Common hardware configuration accross my boards
- */
-// Space saving
-#ifdef LOCKING_SUPPORT_ENABLE
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-#ifdef LOCKING_RESYNC_ENABLE
-# undef LOCKING_RESYNC_ENABLE
-#endif
-#ifndef NO_DEBUG
-# define NO_DEBUG
-#endif
-
-#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
-# define NO_PRINT
-#endif
-
-// Some of my own settings
-# define HOUSEKEEPING_THROTTLE_INTERVAL_MS 250
-
-// Split transport settings
-#ifdef SPLIT_KEYBOARD
-# define SPLIT_TRANSPORT_MIRROR
-# define SPLIT_LAYER_STATE_ENABLE
-# define SPLIT_MODS_ENABLE
-# define SPLIT_TRANSACTION_IDS_USER RPC_ID_CONFIG_SYNC, RPC_ID_RUNTIME_SYNC, RPC_ID_KEYMAP_SYNC
-# define SPLIT_LED_STATE_ENABLE
-# ifdef WPM_ENABLE
-# define SPLIT_WPM_ENABLE
-# endif // WPM_ENABLE
-# ifdef OLED_ENABLE
-# define SPLIT_OLED_ENABLE
-# endif // OLED_ENABLE
-#endif // SPLIT_KEYBOARD
-
-// Unicode entry mode
-#ifdef UNICODEMAP_ENABLE
-# define UNICODE_SELECTED_MODES UC_LNX
- // Adapt the unicode entry mode to dvorak
-# ifdef UNICODE_KEY_LNX
-# undef UNICODE_KEY_LNX
-# endif
-# define UNICODE_KEY_LNX LCTL(LSFT(KC_F))
-#endif // UNICODEMAP_ENABLE
-
-// Mousekey mode
-#ifdef MOUSEKEY_ENABLE
-# define MK_COMBINED
-#endif // MOUSEKEY_ENABLE
-
-// Tap-hold settings
-#define TAPPING_TERM 200
-#define TAP_CODE_DELAY 20
-#define IGNORE_MOD_TAP_INTERRUPT
-#define PERMISSIVE_HOLD
-#define TAPPING_FORCE_HOLD
-
-// Backlight settings
-#ifdef BACKLIGHT_ENABLE
-# define BACKLIGHT_BREATHING
-# define BREATHING_PERIOD 5
-#endif // BACKLIGHT_ENABLE
-
-// Audio definitions
-#ifdef AUDIO_ENABLE
-//# define AUDIO_ENABLE_TONE_MULTIPLEXING
- // Make findable songs as defaults
-# ifdef HOROLOGY
-# define STARTUP_SONG SONG(HOROLOGY)
-# endif
-# ifdef PEOPLE_VULTURES
-# define GOODBYE_SONG SONG(PEOPLE_VULTURES)
-# endif
-# ifdef NONAGON_INFINITY
-# define MUSIC_ON_SONG SONG(NONAGON_INFINITY)
-# endif
-# ifdef WAH_WAH
-# define MUSIC_OFF_SONG SONG(WAH_WAH)
-# endif
- // Audio code expects these to be defined
-# ifdef BIG_FIG_WASP
-# define GAME_ON_SONG SONG(BIG_FIG_WASP)
-# else
-# define GAME_ON_SONG SONG(USSR_ANTHEM)
-# endif
-# ifdef POLYGONDWANALAND
-# define GAME_OFF_SONG SONG(POLYGONDWANALAND)
-# else
-# define GAME_OFF_SONG SONG(NOCTURNE_OP_9_NO_1)
-# endif
-#endif // AUDIO_ENABLE
-
-// OLED definitions
-#ifdef OLED_ENABLE
- // Timeout does not work for split secondary board; i implemented it myself
-# define OLED_TIMEOUT 30000
- // Fade out the screen when timing out
-# define OLED_FADE_OUT
-# define OLED_FADE_OUT_INTERVAL 15
-#endif // OLED_ENABLE
-
-// For perkey leds
-#ifdef RGB_MATRIX_ENABLE
-// This is not working
-//# define RGB_MATRIX_TIMEOUT 1800000
-# define RGB_DISABLE_WHEN_USB_SUSPENDED true
- // Start using this mode
-# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_RAINBOW_BEACON
-# define RGB_MATRIX_STARTUP_HUE 100
-# define RGB_MATRIX_STARTUP_SAT 255
-# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
- // Some config options
-# define RGB_MATRIX_KEYRELEASES
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enable framebuffer effects
-#endif // RGB_MATRIX_ENABLE
diff --git a/users/bbaserdem/keymap-bitmaps/.gitignore b/users/bbaserdem/keymap-bitmaps/.gitignore
deleted file mode 100644
index 6448f593d6..0000000000
--- a/users/bbaserdem/keymap-bitmaps/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.bmp
-splitImages
-templates
-!.gitignore
diff --git a/users/bbaserdem/keymap-bitmaps/cropBmp b/users/bbaserdem/keymap-bitmaps/cropBmp
deleted file mode 100755
index 4a322b4175..0000000000
--- a/users/bbaserdem/keymap-bitmaps/cropBmp
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-# Copyright 2021 Batuhan Başerdem
-# <baserdem.batuhan@gmail.com> @bbaserdem
-#
-# 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/>.
-
-# Goes through all the files and turns them into strips in their respective folder
-if [ -z "${1}" ] ; then
- echo 'No argument; defaulting to script directory.'
- target_dir="$(dirname "${0}")"
-elif [ -d "${1}" ] ; then
- echo "Targeting files in '${1}'."
- target_dir="${1}"
-else
- echo 'Argument is not directory.'
- exit 1
-fi
-
-output_dir="${target_dir}/splitImages"
-mkdir -p "${output_dir}"
-
-for this_image in "${target_dir}/"*.bmp ; do
- echo "Found '${this_image}'."
- this_name="$(basename "${this_image%%.bmp}")"
- convert "${this_image}" -crop 'x8' "${output_dir}/${this_name}"_%d.bmp
-done
diff --git a/users/bbaserdem/readme.md b/users/bbaserdem/readme.md
deleted file mode 100644
index 0a1b80cc74..0000000000
--- a/users/bbaserdem/readme.md
+++ /dev/null
@@ -1,131 +0,0 @@
-# BBASERDEM userspace code for qmk
-
-My userspace code for my various keyboards; available here.
-
-## Builds
-
-These are my keyboard builds and info, it allows me to plan out my builds.
-
-### Planck SERVER
-
-* Board: `kprepublic/jj40`
-* Microcontroller: Embedded
-* Layout: `ortho_4x12`
-* Functionality: Underglow RGB Lighting, LED diode lighting.
-* Case: Clear Acrylic Top and Bottow, with Frosted Acrylic Diffuser (Smashing Acrylics)
-* Switches: BOX Navy
-* Keycaps: Datamancer Tall Deco Typewriter Keycaps
-
-Just a decorative planck replacement (for my rev4 PCB that died.)
-
-### Planck Light
-
-* Board: `planck/light`
-* Microcontroller: Embedded
-* Layout: `ortho_4x12`
-* Functionality: Per-key RGB Lighting, Audio.
-* Case: Clear Acrylic Top and Bottow, with Frosted Acrylic Diffuser (Smashing Acrylics)
-* Switches: BOX Navy
-* Keycaps: Datamancer Tall Deco Typewriter Keycaps
-
-Just a decorative planck replacement (for my rev4 PCB that died.)
-
-### Corne ARM
-
-* Board: `crkbd/rev1`
-* Microcontroller: Proton C (x2)
-* Layout: `split_3x6_3`
-* Functionality: OLED, Audio, Per-key RGB Lighting, Rotary Encoder (x2)
-* Case: IMK Corne Case v2 Polycarbonate
-* Switches: Healios V2
-* Keycaps: POM Jelly
-
-PCB is actually [Proton-C Compatible crkbd PCB](https://github.com/ItsWaffIe/waffle_corne).
-
-### Corne Lite
-
-* Board: `crkbd/rev1`
-* Microcontroller: Pro Micro (x2)
-* Layout: `split_3x5_3`
-* Functionality: Per-key RGB Lighting, OLED (No firmware space)
-* Case: Custom
-* Switches: Choc Low Burnt Orange
-* Keycaps: [Scooped Choc Keycaps](https://mkultra.click/collections/keycaps/products/scooped-choc-keycaps?variant=31223543365730)
-
-Maybe try adding a trackpad for this, as detailed
-[here](https://github.com/manna-harbour/crkbd/blob/master/trackpoint/readme.org).
-
-### Kyria
-
-* Board: `splitkb/kyria/rev1`
-* Microcontroller: Pro Micro (x2)
-* Layout: `split_3x6_6`
-* Functionality: OLED, Underglow RGB Lighting (No firmware space), Rotary Encoder (x2)
-* Case: Matte Black Acrylic High-Profile case
-* Switches: Gateron Ink Silent Black
-* Keycaps: Oblotzky SA Oblivion
-
-Main driver at work currently; love the switches and the board layout.
-
-# Firmware building
-
-## Archlinux
-
-On archlinux, the package *arm-none-eabi-gcc* is too new.
-To fix; add to the environment `CFLAGS="-Wno-error=deprecated"` to compilation commands.
-Also; says to run `avr-gcc` version `8.4.0` for smaller firmware,
-but I find that it only saves a few bytes.
-
-## Bootloader
-
-Needed to type this out from the QMK website.
-If I want to flash a new bootloader for a machine; here are steps;
-
-1. Flash the util/pro_micro_ISP_B6_10.hex to a spare promicro using;
-`avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:pro_micro_ISP_B6_10.hex`
-2. Wire the pins; (first is the ISP pro micro; second is the target)
-```
-Pro Micro 10 (B6) <-> Keyboard RESET
-Pro Micro 15 (B1) <-> Keyboard B1 (SCLK)
-Pro Micro 16 (B2) <-> Keyboard B2 (MOSI)
-Pro Micro 14 (B3) <-> Keyboard B3 (MISO)
-Pro Micro VCC <-> Keyboard VCC
-Pro Micro GND <-> Keyboard GND
-```
-I do have this on hand I believe; from massdrop's planck light firmware updater.
-3. Connect the flashed pro micro to my computer and run
-`avrdude -c avrisp -P "$(ls /dev/ttyACM*)" -p atmega32u4 -U flash:w:bootloader_atmega32u4_1.0.0.hex:i -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m`
-
-The avrisp here refers to the firmware on the ISP flasher pro micro.
-The `atmega32u4` refers to the CPU used in the respective breakout boards.
-The `avrdude` command interacts with catalina bootloader.
-The shell call after the `-P` flag auto finds the port that the pro micro connects to.
-The last few arguments are some jumpers apparently.
-
-# Features
-
-My userspace has a lot of shared code between different keyboards.
-These files are prefixed with `sbp-` to remove any naming clash.
-
-* [bb-audio](bb-audio.c): Code dealing with audio playback using onboard sound.
-* [bb-encoder](bb-encoder.c): Rotary encoder sutff.
-* [bb-macro](bb-macro.c): My custom keycodes; macros, tap dances, etc.
-* [bb-oled](bb-oled.c): Controls OLED displays. For higher memory; there is also [bb-oled-extra](bb-oled-extra.c).
-* [bb-rgb](bb-rgb.c): Controls per-key RGB LED matrix stuff, and layer indication. Uses `RGB_MATRIX`.
-* [bb-underglaw](bb-underglow.c): Controls RGB LED strip, and layer indication. Uses `RGBLIGHT`.
-
-# Layout
-
-My personal layout is mostly inspired by the
-[Miryoku layout](../manna-harbour_miryoku/miryoku.org).
-There are some changes to make it friendlier to international keyboards.
-My board is compatible with software implementation of Dvorak and Turkish F.
-
-## Base
-
-Base layer uses tap-hold functionality to have access to modifiers.
-The modifiers are mirrored on each half of the layout;
-as to make those modifiers accessible to the keys that overlap them.
-Besides the Alt key; each side has the proper L/R version of the modifier.
-Since Right Alt key functions as AltGr key;
-both the L and R versions are available on each side.
diff --git a/users/bbaserdem/rules.mk b/users/bbaserdem/rules.mk
deleted file mode 100644
index 58f72bb110..0000000000
--- a/users/bbaserdem/rules.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 2021 Batuhan Başerdem
-# <baserdem.batuhan@gmail.com> @bbaserdem
-#
-# 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/>.
-
-# Common compilation flags
-LTO_ENABLE = yes
-
-# These should be enabled in all boards
-MOUSEKEY_ENABLE = yes # Mouse emulation keys
-EXTRAKEY_ENABLE = yes # OS signals like volume control
-UNICODEMAP_ENABLE = yes # Used for unicode character emulation
-
-# These should be disabled in all boards
-BOOTMAGIC_ENABLE = no # Access to EEPROM settings, not needed
-CONSOLE_ENABLE = no # Allows console output with a command
-COMMAND_ENABLE = no # Some bootmagic thing i dont use
-SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested.
-MIDI_ENABLE = no # Midi driver (untested)
-UNICODE_ENABLE = no # We use unicodemap, not unicode
-UCIS_ENABLE = no # We use unicodemap, not ucis
-VARIABLE_TRACE = no # Allows debugging variables
-KEY_LOCK_ENABLE = no # Allows locking any key. Not used in general
-RGBLIGHT_ENABLE = no # LED strip, but there is RGB_MATRIX instead
-TAP_DANCE_ENABLE = no # Tap dance keys; i don't use tap dance
-
-# These features can be disabled at whim
-NKRO_ENABLE ?= yes # Default is 6KRO
-VELOCIKEY_ENABLE ?= yes # Speed effects change with typing speed
-WPM_ENABLE ?= yes # Get WPM reports as you type
-
-# Manually configure these on each keyboard individually
-# AUDIO_ENABLE # Audio stuff
-# BACKLIGHT_ENABLE # Switch LEDs
-# ENCODER_ENABLE # Rotary encoder
-# RGB_MATRIX_ENABLE # RGB LEDs
-# OLED_ENABLE # For OLED
-
-# Userspace code
-SRC += bbaserdem.c
-
-# Macros
-SRC += bb-macro.c
-
-# Audio code
-ifeq ($(strip $(AUDIO_ENABLE)), yes)
-SRC += bb-audio.c
-endif
-
-# Rotary encoder stuff
-ifeq ($(strip $(ENCODER_ENABLE)), yes)
-SRC += bb-encoder.c
-endif
-
-# RGB LED (Underglow) code
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
-SRC += bb-underglow.c
-endif
-
-# RGB LED (Perkey) code
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
-SRC += bb-rgb.c
-endif
-
-# Backlight code
-ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
-SRC += bb-backlight.c
-endif
-
-# OLED code
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += bb-oled.c
- ifeq ($(strip $(CTPC)), yes)
- SRC += bb-oled-extra.c
- endif
-endif