diff --git a/7skb/blank.json b/attic/layouts/7skb/blank.json
similarity index 100%
rename from 7skb/blank.json
rename to attic/layouts/7skb/blank.json
diff --git a/7skb/blank.png b/attic/layouts/7skb/blank.png
similarity index 100%
rename from 7skb/blank.png
rename to attic/layouts/7skb/blank.png
diff --git a/7skb/layer-1.json b/attic/layouts/7skb/layer-1.json
similarity index 100%
rename from 7skb/layer-1.json
rename to attic/layouts/7skb/layer-1.json
diff --git a/7skb/layer-1.png b/attic/layouts/7skb/layer-1.png
similarity index 100%
rename from 7skb/layer-1.png
rename to attic/layouts/7skb/layer-1.png
diff --git a/7skb/layer-2-and-3.json b/attic/layouts/7skb/layer-2-and-3.json
similarity index 100%
rename from 7skb/layer-2-and-3.json
rename to attic/layouts/7skb/layer-2-and-3.json
diff --git a/7skb/layer-2-and-3.png b/attic/layouts/7skb/layer-2-and-3.png
similarity index 100%
rename from 7skb/layer-2-and-3.png
rename to attic/layouts/7skb/layer-2-and-3.png
diff --git a/7skb/layout-misc.json b/attic/layouts/7skb/layout-misc.json
similarity index 100%
rename from 7skb/layout-misc.json
rename to attic/layouts/7skb/layout-misc.json
diff --git a/7skb/layout-misc.png b/attic/layouts/7skb/layout-misc.png
similarity index 100%
rename from 7skb/layout-misc.png
rename to attic/layouts/7skb/layout-misc.png
diff --git a/corne/6 column/layer-1---default.json b/attic/layouts/corne/6 column/layer-1---default.json
similarity index 100%
rename from corne/6 column/layer-1---default.json
rename to attic/layouts/corne/6 column/layer-1---default.json
diff --git a/corne/6 column/layer-1---default.png b/attic/layouts/corne/6 column/layer-1---default.png
similarity index 100%
rename from corne/6 column/layer-1---default.png
rename to attic/layouts/corne/6 column/layer-1---default.png
diff --git a/corne/6 column/layer-2---function.json b/attic/layouts/corne/6 column/layer-2---function.json
similarity index 100%
rename from corne/6 column/layer-2---function.json
rename to attic/layouts/corne/6 column/layer-2---function.json
diff --git a/corne/6 column/layer-2---function.png b/attic/layouts/corne/6 column/layer-2---function.png
similarity index 100%
rename from corne/6 column/layer-2---function.png
rename to attic/layouts/corne/6 column/layer-2---function.png
diff --git a/kbdfans/kbd67/rev2/README.md b/attic/layouts/kbdfans/kbd67/rev2/README.md
similarity index 100%
rename from kbdfans/kbd67/rev2/README.md
rename to attic/layouts/kbdfans/kbd67/rev2/README.md
diff --git a/kbdfans/kbd67/rev2/config.h b/attic/layouts/kbdfans/kbd67/rev2/config.h
similarity index 100%
rename from kbdfans/kbd67/rev2/config.h
rename to attic/layouts/kbdfans/kbd67/rev2/config.h
diff --git a/kbdfans/kbd67/rev2/kbdfans_kbd67_rev2_kemonine.hex b/attic/layouts/kbdfans/kbd67/rev2/kbdfans_kbd67_rev2_kemonine.hex
similarity index 100%
rename from kbdfans/kbd67/rev2/kbdfans_kbd67_rev2_kemonine.hex
rename to attic/layouts/kbdfans/kbd67/rev2/kbdfans_kbd67_rev2_kemonine.hex
diff --git a/kbdfans/kbd67/rev2/keymap.c b/attic/layouts/kbdfans/kbd67/rev2/keymap.c
similarity index 100%
rename from kbdfans/kbd67/rev2/keymap.c
rename to attic/layouts/kbdfans/kbd67/rev2/keymap.c
diff --git a/kbdfans/kbd67/rev2/layer-1.json b/attic/layouts/kbdfans/kbd67/rev2/layer-1.json
similarity index 100%
rename from kbdfans/kbd67/rev2/layer-1.json
rename to attic/layouts/kbdfans/kbd67/rev2/layer-1.json
diff --git a/kbdfans/kbd67/rev2/layer-1.png b/attic/layouts/kbdfans/kbd67/rev2/layer-1.png
similarity index 100%
rename from kbdfans/kbd67/rev2/layer-1.png
rename to attic/layouts/kbdfans/kbd67/rev2/layer-1.png
diff --git a/kbdfans/kbd67/rev2/layer-2.json b/attic/layouts/kbdfans/kbd67/rev2/layer-2.json
similarity index 100%
rename from kbdfans/kbd67/rev2/layer-2.json
rename to attic/layouts/kbdfans/kbd67/rev2/layer-2.json
diff --git a/kbdfans/kbd67/rev2/layer-2.png b/attic/layouts/kbdfans/kbd67/rev2/layer-2.png
similarity index 100%
rename from kbdfans/kbd67/rev2/layer-2.png
rename to attic/layouts/kbdfans/kbd67/rev2/layer-2.png
diff --git a/kbdfans/kbd67/rev2/layer-3.json b/attic/layouts/kbdfans/kbd67/rev2/layer-3.json
similarity index 100%
rename from kbdfans/kbd67/rev2/layer-3.json
rename to attic/layouts/kbdfans/kbd67/rev2/layer-3.json
diff --git a/kbdfans/kbd67/rev2/layer-3.png b/attic/layouts/kbdfans/kbd67/rev2/layer-3.png
similarity index 100%
rename from kbdfans/kbd67/rev2/layer-3.png
rename to attic/layouts/kbdfans/kbd67/rev2/layer-3.png
diff --git a/kbdfans/kbd67/rev2/rules.mk b/attic/layouts/kbdfans/kbd67/rev2/rules.mk
similarity index 100%
rename from kbdfans/kbd67/rev2/rules.mk
rename to attic/layouts/kbdfans/kbd67/rev2/rules.mk
diff --git a/lily58pro/layer-1---default.json b/attic/layouts/lily58pro/layer-1---default.json
similarity index 100%
rename from lily58pro/layer-1---default.json
rename to attic/layouts/lily58pro/layer-1---default.json
diff --git a/lily58pro/layer-1---default.png b/attic/layouts/lily58pro/layer-1---default.png
similarity index 100%
rename from lily58pro/layer-1---default.png
rename to attic/layouts/lily58pro/layer-1---default.png
diff --git a/lily58pro/layer-2---function.json b/attic/layouts/lily58pro/layer-2---function.json
similarity index 100%
rename from lily58pro/layer-2---function.json
rename to attic/layouts/lily58pro/layer-2---function.json
diff --git a/lily58pro/layer-2---function.png b/attic/layouts/lily58pro/layer-2---function.png
similarity index 100%
rename from lily58pro/layer-2---function.png
rename to attic/layouts/lily58pro/layer-2---function.png
diff --git a/makerdiary/m60/layer-1---default.json b/attic/layouts/makerdiary/m60/layer-1---default.json
similarity index 100%
rename from makerdiary/m60/layer-1---default.json
rename to attic/layouts/makerdiary/m60/layer-1---default.json
diff --git a/makerdiary/m60/layer-1---default.png b/attic/layouts/makerdiary/m60/layer-1---default.png
similarity index 100%
rename from makerdiary/m60/layer-1---default.png
rename to attic/layouts/makerdiary/m60/layer-1---default.png
diff --git a/makerdiary/m60/layer-2---function.json b/attic/layouts/makerdiary/m60/layer-2---function.json
similarity index 100%
rename from makerdiary/m60/layer-2---function.json
rename to attic/layouts/makerdiary/m60/layer-2---function.json
diff --git a/makerdiary/m60/layer-2---function.png b/attic/layouts/makerdiary/m60/layer-2---function.png
similarity index 100%
rename from makerdiary/m60/layer-2---function.png
rename to attic/layouts/makerdiary/m60/layer-2---function.png
diff --git a/massdrop/alt/README.md b/attic/layouts/massdrop/alt/README.md
similarity index 100%
rename from massdrop/alt/README.md
rename to attic/layouts/massdrop/alt/README.md
diff --git a/massdrop/alt/config.h b/attic/layouts/massdrop/alt/config.h
similarity index 100%
rename from massdrop/alt/config.h
rename to attic/layouts/massdrop/alt/config.h
diff --git a/massdrop/alt/keymap.c b/attic/layouts/massdrop/alt/keymap.c
similarity index 100%
rename from massdrop/alt/keymap.c
rename to attic/layouts/massdrop/alt/keymap.c
diff --git a/massdrop/alt/layer-1.json b/attic/layouts/massdrop/alt/layer-1.json
similarity index 100%
rename from massdrop/alt/layer-1.json
rename to attic/layouts/massdrop/alt/layer-1.json
diff --git a/massdrop/alt/layer-1.png b/attic/layouts/massdrop/alt/layer-1.png
similarity index 100%
rename from massdrop/alt/layer-1.png
rename to attic/layouts/massdrop/alt/layer-1.png
diff --git a/massdrop/alt/layer-2.json b/attic/layouts/massdrop/alt/layer-2.json
similarity index 100%
rename from massdrop/alt/layer-2.json
rename to attic/layouts/massdrop/alt/layer-2.json
diff --git a/massdrop/alt/layer-2.png b/attic/layouts/massdrop/alt/layer-2.png
similarity index 100%
rename from massdrop/alt/layer-2.png
rename to attic/layouts/massdrop/alt/layer-2.png
diff --git a/massdrop/alt/layer-3.json b/attic/layouts/massdrop/alt/layer-3.json
similarity index 100%
rename from massdrop/alt/layer-3.json
rename to attic/layouts/massdrop/alt/layer-3.json
diff --git a/massdrop/alt/layer-3.png b/attic/layouts/massdrop/alt/layer-3.png
similarity index 100%
rename from massdrop/alt/layer-3.png
rename to attic/layouts/massdrop/alt/layer-3.png
diff --git a/massdrop/alt/massdrop_alt_kemonine.bin b/attic/layouts/massdrop/alt/massdrop_alt_kemonine.bin
similarity index 100%
rename from massdrop/alt/massdrop_alt_kemonine.bin
rename to attic/layouts/massdrop/alt/massdrop_alt_kemonine.bin
diff --git a/massdrop/alt/rules.mk b/attic/layouts/massdrop/alt/rules.mk
similarity index 100%
rename from massdrop/alt/rules.mk
rename to attic/layouts/massdrop/alt/rules.mk
diff --git a/nullbitsco/tidbit/layer-1---navigation.json b/attic/layouts/nullbitsco/tidbit/layer-1---navigation.json
similarity index 100%
rename from nullbitsco/tidbit/layer-1---navigation.json
rename to attic/layouts/nullbitsco/tidbit/layer-1---navigation.json
diff --git a/nullbitsco/tidbit/layer-1---navigation.png b/attic/layouts/nullbitsco/tidbit/layer-1---navigation.png
similarity index 100%
rename from nullbitsco/tidbit/layer-1---navigation.png
rename to attic/layouts/nullbitsco/tidbit/layer-1---navigation.png
diff --git a/nullbitsco/tidbit/layer-2---mouse.json b/attic/layouts/nullbitsco/tidbit/layer-2---mouse.json
similarity index 100%
rename from nullbitsco/tidbit/layer-2---mouse.json
rename to attic/layouts/nullbitsco/tidbit/layer-2---mouse.json
diff --git a/nullbitsco/tidbit/layer-2---mouse.png b/attic/layouts/nullbitsco/tidbit/layer-2---mouse.png
similarity index 100%
rename from nullbitsco/tidbit/layer-2---mouse.png
rename to attic/layouts/nullbitsco/tidbit/layer-2---mouse.png
diff --git a/nullbitsco/tidbit/layer-3---number-pad.json b/attic/layouts/nullbitsco/tidbit/layer-3---number-pad.json
similarity index 100%
rename from nullbitsco/tidbit/layer-3---number-pad.json
rename to attic/layouts/nullbitsco/tidbit/layer-3---number-pad.json
diff --git a/nullbitsco/tidbit/layer-3---number-pad.png b/attic/layouts/nullbitsco/tidbit/layer-3---number-pad.png
similarity index 100%
rename from nullbitsco/tidbit/layer-3---number-pad.png
rename to attic/layouts/nullbitsco/tidbit/layer-3---number-pad.png
diff --git a/nullbitsco/tidbit/layer-4---zmk.json b/attic/layouts/nullbitsco/tidbit/layer-4---zmk.json
similarity index 100%
rename from nullbitsco/tidbit/layer-4---zmk.json
rename to attic/layouts/nullbitsco/tidbit/layer-4---zmk.json
diff --git a/nullbitsco/tidbit/layer-4---zmk.png b/attic/layouts/nullbitsco/tidbit/layer-4---zmk.png
similarity index 100%
rename from nullbitsco/tidbit/layer-4---zmk.png
rename to attic/layouts/nullbitsco/tidbit/layer-4---zmk.png
diff --git a/qvex/lynepad/README.md b/attic/layouts/qvex/lynepad/README.md
similarity index 100%
rename from qvex/lynepad/README.md
rename to attic/layouts/qvex/lynepad/README.md
diff --git a/qvex/lynepad/config.h b/attic/layouts/qvex/lynepad/config.h
similarity index 100%
rename from qvex/lynepad/config.h
rename to attic/layouts/qvex/lynepad/config.h
diff --git a/qvex/lynepad/keymap.c b/attic/layouts/qvex/lynepad/keymap.c
similarity index 100%
rename from qvex/lynepad/keymap.c
rename to attic/layouts/qvex/lynepad/keymap.c
diff --git a/qvex/lynepad/layer-1.json b/attic/layouts/qvex/lynepad/layer-1.json
similarity index 100%
rename from qvex/lynepad/layer-1.json
rename to attic/layouts/qvex/lynepad/layer-1.json
diff --git a/qvex/lynepad/layer-1.png b/attic/layouts/qvex/lynepad/layer-1.png
similarity index 100%
rename from qvex/lynepad/layer-1.png
rename to attic/layouts/qvex/lynepad/layer-1.png
diff --git a/qvex/lynepad/layer-2---lr-library.json b/attic/layouts/qvex/lynepad/layer-2---lr-library.json
similarity index 100%
rename from qvex/lynepad/layer-2---lr-library.json
rename to attic/layouts/qvex/lynepad/layer-2---lr-library.json
diff --git a/qvex/lynepad/layer-2---lr-library.png b/attic/layouts/qvex/lynepad/layer-2---lr-library.png
similarity index 100%
rename from qvex/lynepad/layer-2---lr-library.png
rename to attic/layouts/qvex/lynepad/layer-2---lr-library.png
diff --git a/qvex/lynepad/layer-3---lr-develop.json b/attic/layouts/qvex/lynepad/layer-3---lr-develop.json
similarity index 100%
rename from qvex/lynepad/layer-3---lr-develop.json
rename to attic/layouts/qvex/lynepad/layer-3---lr-develop.json
diff --git a/qvex/lynepad/layer-3---lr-develop.png b/attic/layouts/qvex/lynepad/layer-3---lr-develop.png
similarity index 100%
rename from qvex/lynepad/layer-3---lr-develop.png
rename to attic/layouts/qvex/lynepad/layer-3---lr-develop.png
diff --git a/qvex/lynepad/qvex_lynepad_kemonine.hex b/attic/layouts/qvex/lynepad/qvex_lynepad_kemonine.hex
similarity index 100%
rename from qvex/lynepad/qvex_lynepad_kemonine.hex
rename to attic/layouts/qvex/lynepad/qvex_lynepad_kemonine.hex
diff --git a/qvex/lynepad/rules.mk b/attic/layouts/qvex/lynepad/rules.mk
similarity index 100%
rename from qvex/lynepad/rules.mk
rename to attic/layouts/qvex/lynepad/rules.mk
diff --git a/tg4x/layer-1---default.json b/attic/layouts/tg4x/layer-1---default.json
similarity index 100%
rename from tg4x/layer-1---default.json
rename to attic/layouts/tg4x/layer-1---default.json
diff --git a/tg4x/layer-1---default.png b/attic/layouts/tg4x/layer-1---default.png
similarity index 100%
rename from tg4x/layer-1---default.png
rename to attic/layouts/tg4x/layer-1---default.png
diff --git a/tg4x/layer-2---function.json b/attic/layouts/tg4x/layer-2---function.json
similarity index 100%
rename from tg4x/layer-2---function.json
rename to attic/layouts/tg4x/layer-2---function.json
diff --git a/tg4x/layer-2---function.png b/attic/layouts/tg4x/layer-2---function.png
similarity index 100%
rename from tg4x/layer-2---function.png
rename to attic/layouts/tg4x/layer-2---function.png
diff --git a/tg4x/layer-2---other.json b/attic/layouts/tg4x/layer-2---other.json
similarity index 100%
rename from tg4x/layer-2---other.json
rename to attic/layouts/tg4x/layer-2---other.json
diff --git a/tg4x/layer-2---other.png b/attic/layouts/tg4x/layer-2---other.png
similarity index 100%
rename from tg4x/layer-2---other.png
rename to attic/layouts/tg4x/layer-2---other.png
diff --git a/attic/qmk/kbdfans/kbd67/rev2/README.md b/attic/qmk/kbdfans/kbd67/rev2/README.md
new file mode 100644
index 00000000..396d5717
--- /dev/null
+++ b/attic/qmk/kbdfans/kbd67/rev2/README.md
@@ -0,0 +1,5 @@
+# kbd67 rev2
+
+The information, keymaps, firmware and keyboard layout for KemoNine's setup on the kbdfans kbd67 rev2 keyboard.
+
+Layout files were generated by [www.keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/)
diff --git a/attic/qmk/kbdfans/kbd67/rev2/config.h b/attic/qmk/kbdfans/kbd67/rev2/config.h
new file mode 100644
index 00000000..09e41403
--- /dev/null
+++ b/attic/qmk/kbdfans/kbd67/rev2/config.h
@@ -0,0 +1,15 @@
+#define TAPPING_TERM 200
+#undef RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_LAYERS
+#define GRAVE_ESC_CTRL_OVERRIDE
+
+// Mouse settings
+#define MOUSEKEY_DELAY 175
+#define MOUSEKEY_WHEEL_DELAY 175
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_TIME_TO_MAX 15
+#define MOUSEKEY_MAX_SPEED 5
+#define MOUSEKEY_WHEEL_INTERVAL 50
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
+#define MOUSEKEY_WHEEL_MAX_SPEED 10
+#define MK_COMBINED
diff --git a/attic/qmk/kbdfans/kbd67/rev2/keymap.c b/attic/qmk/kbdfans/kbd67/rev2/keymap.c
new file mode 100644
index 00000000..ef131901
--- /dev/null
+++ b/attic/qmk/kbdfans/kbd67/rev2/keymap.c
@@ -0,0 +1,202 @@
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#include QMK_KEYBOARD_H
+
+keymap_config_t keymap_config;
+
+uint8_t cur_dance(qk_tap_dance_state_t *state);
+void al_finished(qk_tap_dance_state_t *state, void *user_data);
+void al_reset(qk_tap_dance_state_t *state, void *user_data);
+
+typedef struct {
+ bool is_press_action;
+ uint8_t state;
+} tap;
+
+enum {
+ SINGLE_TAP = 1,
+ SINGLE_HOLD,
+ DOUBLE_TAP
+};
+
+enum {
+ ACCEL_0 = 0,
+ ACCEL_1 = 1,
+ ACCEL_2 = 2,
+};
+enum {
+ ACCEL = SAFE_RANGE,
+ ACCEL_ADJ,
+ PROG,
+};
+static uint8_t acceleration_level = ACCEL_0;
+void change_accel(void) {
+ acceleration_level++;
+ if (acceleration_level > ACCEL_2) {
+ acceleration_level = ACCEL_0;
+ }
+}
+
+enum td_keycodes {
+ LAYERS // Our example key: `MOD(1)` when held, `TG(2)` when tapped. Add additional keycodes for each tapdance.
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [LAYERS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, al_finished, al_reset)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_65_ansi(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ LM(1, MOD_LALT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, TD(LAYERS), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+ [1] = LAYOUT_65_ansi(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, PROG, KC_INS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PLAY_PAUSE, KC_RSFT, KC_VOLU, KC_MUTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_VOLD, RGB_VAI),
+ [2] = LAYOUT_65_ansi(KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ ACCEL, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
+ KC_LCTL, KC_NO, KC_LALT, ACCEL_ADJ, TG(2), KC_RALT, KC_RCTL, KC_NO, KC_NO, KC_NO),
+};
+
+// Customized HSV values for layer highlights
+#define HSV_KMN_ORANGE 10,255, RGBLIGHT_LIMIT_VAL
+#define HSV_KMN_CYAN 128, 255, RGBLIGHT_LIMIT_VAL
+#define HSV_KMN_PURPLE 191, 255, RGBLIGHT_LIMIT_VAL
+
+// Standard layout == Layer 0 == Orange
+const rgblight_segment_t PROGMEM led_underglow_orange[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, RGBLED_NUM, HSV_KMN_ORANGE}
+);
+// Modifiers == Layer 1 == Cyan
+const rgblight_segment_t PROGMEM led_underglow_cyan[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, RGBLED_NUM, HSV_KMN_CYAN}
+);
+// Mouse keys == Layer 3 == Purple
+const rgblight_segment_t PROGMEM led_underglow_purple[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, RGBLED_NUM, HSV_KMN_PURPLE}
+);
+
+// Array of layers for management
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ led_underglow_orange,
+ led_underglow_cyan,
+ led_underglow_purple
+);
+
+// Layer color init
+void keyboard_post_init_user(void) {
+ rgblight_layers = my_rgb_layers;
+}
+
+// Adjust layers based on which is active
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_set_layer_state(0, layer_state_cmp(state, 0));
+ rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+ rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+ return state;
+}
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case ACCEL:
+ if (record->event.pressed) {
+ switch(acceleration_level) {
+ case ACCEL_0:
+ register_code16(KC_ACL0);
+ break;
+ case ACCEL_1:
+ register_code16(KC_ACL1);
+ break;
+ case ACCEL_2:
+ register_code16(KC_ACL2);
+ break;
+ }
+ } else {
+ switch(acceleration_level) {
+ case ACCEL_0:
+ unregister_code16(KC_ACL0);
+ break;
+ case ACCEL_1:
+ unregister_code16(KC_ACL1);
+ break;
+ case ACCEL_2:
+ unregister_code16(KC_ACL2);
+ break;
+ }
+ }
+ return false; // Skip all further processing of this key
+ case ACCEL_ADJ:
+ if (record->event.pressed) {
+ }
+ else {
+ change_accel();
+ }
+ case PROG:
+ if (record->event.pressed) {
+ rgblight_disable_noeeprom();
+ reset_keyboard();
+ }
+ default:
+ return true; // Process all other keycodes normally
+ }
+}
+
+uint8_t cur_dance(qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (!state->pressed) return SINGLE_TAP;
+ else return SINGLE_HOLD;
+ } else if (state->count == 2) return DOUBLE_TAP;
+ else return 8;
+}
+
+// Initialize tap structure associated with example tap dance key
+static tap al_tap_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+// Functions that control what our tap dance key does
+void al_finished(qk_tap_dance_state_t *state, void *user_data) {
+ al_tap_state.state = cur_dance(state);
+ switch (al_tap_state.state) {
+ case SINGLE_TAP:
+ layer_on(1); // Activate layer 1 immediately since we probably are holding this down ; if released it'll go away fast and shouldn't be an issue
+ break;
+ case SINGLE_HOLD:
+ layer_on(1); // Activate layer 1 since that's what the intent is
+ break;
+ case DOUBLE_TAP:
+ // Check to see if the layer is already set
+ if (layer_state_is(2)) {
+ // If already set, then switch it off
+ layer_off(2);
+ } else {
+ // If not already set, then switch the layer on
+ layer_on(2);
+ }
+ break;
+ }
+}
+
+void al_reset(qk_tap_dance_state_t *state, void *user_data) {
+ // If the key was held down and now is released then switch off the layer
+ if (al_tap_state.state == SINGLE_HOLD) {
+ layer_off(1); // Reset state appropriately
+ }
+ al_tap_state.state = 0;
+}
diff --git a/attic/qmk/kbdfans/kbd67/rev2/rules.mk b/attic/qmk/kbdfans/kbd67/rev2/rules.mk
new file mode 100644
index 00000000..d6c1de32
--- /dev/null
+++ b/attic/qmk/kbdfans/kbd67/rev2/rules.mk
@@ -0,0 +1,2 @@
+MOUSEKEY_ENABLE = yes
+TAP_DANCE_ENABLE = yes
\ No newline at end of file
diff --git a/attic/qmk/massdrop/alt/README.md b/attic/qmk/massdrop/alt/README.md
new file mode 100644
index 00000000..c928e4a8
--- /dev/null
+++ b/attic/qmk/massdrop/alt/README.md
@@ -0,0 +1,5 @@
+# ALT
+
+The information, keymaps, firmware and keyboard layout for KemoNine's setup on the massdrop ALT keyboard.
+
+Layout files were generated by [www.keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/)
diff --git a/attic/qmk/massdrop/alt/config.h b/attic/qmk/massdrop/alt/config.h
new file mode 100644
index 00000000..007f70aa
--- /dev/null
+++ b/attic/qmk/massdrop/alt/config.h
@@ -0,0 +1,13 @@
+#define TAPPING_TERM 200
+#define GRAVE_ESC_CTRL_OVERRIDE
+
+// Mouse settings
+#define MOUSEKEY_DELAY 175
+#define MOUSEKEY_WHEEL_DELAY 175
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_TIME_TO_MAX 15
+#define MOUSEKEY_MAX_SPEED 5
+#define MOUSEKEY_WHEEL_INTERVAL 50
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
+#define MOUSEKEY_WHEEL_MAX_SPEED 10
+#define MK_COMBINED
diff --git a/attic/qmk/massdrop/alt/keymap.c b/attic/qmk/massdrop/alt/keymap.c
new file mode 100644
index 00000000..903d9be0
--- /dev/null
+++ b/attic/qmk/massdrop/alt/keymap.c
@@ -0,0 +1,266 @@
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+
+#include QMK_KEYBOARD_H
+
+#define TAPPING_TERM 200
+
+#define CAPS_LED 30
+#define LALT_LED 60
+
+#define RGB_KMN_NO_COLOR 0, 0, 0
+#define RGB_KMN_CYAN 128, 255, 255
+#define RGB_KMN_PRPL 215, 195, 42
+#define RGB_KMN_CYAN_HILIGHT 0, 191, 255
+
+#define HS_KMN_ORANGE 10,255
+#define HS_KMN_CYAN 128, 255
+
+keymap_config_t keymap_config;
+rgb_config_t rgb_matrix_config;
+
+uint8_t cur_dance(qk_tap_dance_state_t *state);
+void al_finished(qk_tap_dance_state_t *state, void *user_data);
+void al_reset(qk_tap_dance_state_t *state, void *user_data);
+
+enum alt_keycodes {
+ U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
+ U_T_AGCR, //USB Toggle Automatic GCR control
+ DBG_TOG, //DEBUG Toggle On / Off
+ DBG_MTRX, //DEBUG Toggle Matrix Prints
+ DBG_KBD, //DEBUG Toggle Keyboard Prints
+ DBG_MOU, //DEBUG Toggle Mouse Prints
+ MD_BOOT, //Restart into bootloader after hold timeout
+};
+
+typedef struct {
+ bool is_press_action;
+ uint8_t state;
+} tap;
+
+enum {
+ SINGLE_TAP = 1,
+ SINGLE_HOLD,
+ DOUBLE_TAP
+};
+
+enum {
+ ACCEL_0 = 0,
+ ACCEL_1 = 1,
+ ACCEL_2 = 2,
+};
+enum {
+ ACCEL = SAFE_RANGE,
+ ACCEL_ADJ,
+};
+static uint8_t acceleration_level = ACCEL_0;
+void change_accel(void) {
+ acceleration_level++;
+ if (acceleration_level > ACCEL_2) {
+ acceleration_level = ACCEL_0;
+ }
+}
+
+enum td_keycodes {
+ LAYERS // Our example key: `MOD(1)` when held, `TG(2)` when tapped. Add additional keycodes for each tapdance.
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [LAYERS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, al_finished, al_reset)
+};
+
+const uint8_t PROGMEM layercolors[][2] = {
+ [0] = {HS_KMN_ORANGE},
+ [1] = {HS_KMN_CYAN},
+ [2] = {HS_KMN_CYAN}
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_65_ansi_blocker(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ LM(1, MOD_LALT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, TD(LAYERS), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+ [1] = LAYOUT_65_ansi_blocker(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_INS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PLAY_PAUSE, KC_RSFT, KC_VOLU, KC_MUTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, RGB_VAD, KC_VOLD, RGB_VAI),
+ [2] = LAYOUT_65_ansi_blocker(KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ ACCEL, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
+ KC_LCTL, KC_NO, KC_LALT, ACCEL_ADJ, TG(2), KC_NO, KC_NO, KC_NO, KC_NO),
+};
+
+const uint8_t PROGMEM ledcolors[][DRIVER_LED_TOTAL][3] = {
+ [1] = {
+ {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ {RGB_KMN_CYAN}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_CYAN},
+ {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_CYAN}, {RGB_KMN_NO_COLOR}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ // Underglow == 38 LEDS
+ {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN},
+ {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}, {RGB_KMN_CYAN}
+ },
+ [2] = {
+ {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
+ {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
+ {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
+ {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
+ {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
+ // Underglow == 38 LEDS
+ {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
+ {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
+ {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
+ {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}
+ },
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ rgb_matrix_config.raw = pgm_read_dword(EECONFIG_RGB_MATRIX);
+
+ rgb_matrix_enable();
+ rgb_matrix_sethsv(10, 255, 95);
+ rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR);
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case ACCEL:
+ if (record->event.pressed) {
+ switch(acceleration_level) {
+ case ACCEL_0:
+ register_code16(KC_ACL0);
+ break;
+ case ACCEL_1:
+ register_code16(KC_ACL1);
+ break;
+ case ACCEL_2:
+ register_code16(KC_ACL2);
+ break;
+ }
+ } else {
+ switch(acceleration_level) {
+ case ACCEL_0:
+ unregister_code16(KC_ACL0);
+ break;
+ case ACCEL_1:
+ unregister_code16(KC_ACL1);
+ break;
+ case ACCEL_2:
+ unregister_code16(KC_ACL2);
+ break;
+ }
+ }
+ return false; // Skip all further processing of this key
+ case ACCEL_ADJ:
+ if (record->event.pressed) {
+ }
+ else {
+ change_accel();
+ }
+ default:
+ return true; // Process all other keycodes normally
+ }
+}
+
+uint8_t cur_dance(qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (!state->pressed) return SINGLE_TAP;
+ else return SINGLE_HOLD;
+ } else if (state->count == 2) return DOUBLE_TAP;
+ else return 8;
+}
+
+// Initialize tap structure associated with example tap dance key
+static tap al_tap_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+// Functions that control what our tap dance key does
+void al_finished(qk_tap_dance_state_t *state, void *user_data) {
+ al_tap_state.state = cur_dance(state);
+ switch (al_tap_state.state) {
+ case SINGLE_TAP:
+ layer_on(1); // Activate layer 1 immediately since we probably are holding this down ; if released it'll go away fast and shouldn't be an issue
+ break;
+ case SINGLE_HOLD:
+ layer_on(1); // Activate layer 1 since that's what the intent is
+ break;
+ case DOUBLE_TAP:
+ // Check to see if the layer is already set
+ if (layer_state_is(2)) {
+ // If already set, then switch it off
+ layer_off(2);
+ } else {
+ // If not already set, then switch the layer on
+ layer_on(2);
+ }
+ break;
+ }
+}
+
+void al_reset(qk_tap_dance_state_t *state, void *user_data) {
+ // If the key was held down and now is released then switch off the layer
+ if (al_tap_state.state == SINGLE_HOLD) {
+ layer_off(1); // Reset state appropriately
+ }
+ al_tap_state.state = 0;
+}
+
+// Set the colors for individual LEDs for a given layer
+void set_leds_color( int layer) {
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ uint8_t val = pgm_read_byte(&ledcolors[layer][i][2]);
+ // if the brightness of the led is set to 0 in the map,
+ // the value is not overriden with global controls, allowing the led
+ // to appear turned off
+ HSV hsv = { .h = pgm_read_byte(&ledcolors[layer][i][0]), .s = pgm_read_byte(&ledcolors[layer][i][1]), .v = val == 0 ? 0 : rgb_matrix_config.hsv.v};
+ RGB rgb = hsv_to_rgb( hsv );
+ rgb_matrix_set_color( i, rgb.r, rgb.g, rgb.b );
+ }
+}
+
+// Set the colors for ALL LEDs for a given layer
+void set_layer_color( uint8_t layer ) {
+ HSV hsv = { .h = pgm_read_byte(&layercolors[layer][0]), .s = pgm_read_byte(&layercolors[layer][1]), .v = rgb_matrix_config.hsv.v};
+ RGB rgb = hsv_to_rgb( hsv );
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ rgb_matrix_set_color( i, rgb.r, rgb.g, rgb.b );
+ }
+}
+
+// Override standard rgb colorization stuff
+void rgb_matrix_indicators_user(void) {
+ uint32_t mode = rgblight_get_mode();
+ // assign colors if the matrix is on and the current mode
+ // is SOLID COLORS => No animations running
+ if(rgb_matrix_config.enable == 1 && mode == RGB_MATRIX_SOLID_COLOR) {
+ uint8_t layer = biton32(layer_state);
+ switch (layer) {
+ case 0:
+ set_layer_color(0);
+ break;
+ case 1:
+ set_leds_color(1);
+ break;
+ case 2:
+ set_leds_color(2);
+ break;
+ }
+ }
+ if (host_keyboard_leds() & (1<.
+ */
+
+#pragma once
+
+#define TAPPING_TERM 200
+
+#undef RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_LAYERS
+
+// Mouse settings
+#define MOUSEKEY_DELAY 175
+#define MOUSEKEY_WHEEL_DELAY 175
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_TIME_TO_MAX 15
+#define MOUSEKEY_MAX_SPEED 5
+#define MOUSEKEY_WHEEL_INTERVAL 50
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
+#define MOUSEKEY_WHEEL_MAX_SPEED 10
+#define MK_COMBINED
diff --git a/attic/qmk/qvex/lynepad/keymap.c b/attic/qmk/qvex/lynepad/keymap.c
new file mode 100644
index 00000000..35b43d4e
--- /dev/null
+++ b/attic/qmk/qvex/lynepad/keymap.c
@@ -0,0 +1,333 @@
+/* Copyright 2020 KemoNine
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+enum {
+ ACCEL_0 = 0,
+ ACCEL_1 = 1,
+ ACCEL_2 = 2,
+};
+static uint8_t acceleration_level = ACCEL_0;
+
+void change_accel(void) {
+ acceleration_level++;
+ if (acceleration_level > ACCEL_2) {
+ acceleration_level = ACCEL_0;
+ }
+}
+
+// Custom key codes
+enum {
+ ACCEL = SAFE_RANGE,
+};
+
+// Tap Dance declarations
+enum {
+ TD_LAYER_BOOT,
+};
+
+void dance_layer_boot_finished(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ layer_on(1);
+ } else {
+ rgblight_disable_noeeprom();
+ reset_keyboard();
+ }
+}
+
+// Tap Dance definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ // Tap once for Escape, twice for Caps Lock
+ [TD_LAYER_BOOT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_layer_boot_finished, NULL),
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap (Base Layer) Default Layer
+ * |----------------------------|
+ * | 1 | 2 | 3 | 4 | |
+ * | 5 | 6 | 7 | 8 | |
+ * | 9 | 10 | 11 | |
+ * |----------------------------|
+ */
+ [0] = LAYOUT_Lynepad(
+ LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1,
+ LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT,
+ ACCEL, TD(TD_LAYER_BOOT), KC_ESC
+ ),
+ [1] = LAYOUT_Lynepad(
+ LCTL(LALT(KC_2)), LCTL(KC_BSPACE), LSFT(KC_X), LSFT(KC_P),
+ LSFT(KC_TAB), KC_G, KC_E, KC_C,
+ TO(0), TO(1), TO(2)
+ ),
+ [2] = LAYOUT_Lynepad(
+ LCTL(LALT(KC_1)), LCTL(KC_LBRACKET), LCTL(KC_RBRACKET), KC_W,
+ LSFT(KC_TAB), KC_Q, LCTL(LALT(KC_R)), KC_R,
+ TO(0), TO(1), TO(2)
+ )
+};
+
+// Customized HSV values for layer highlights
+#define HSV_KMN_PURPLE 191, 255, 120
+#define HSV_KMN_GREEN 85, 255, 120
+#define HSV_KMN_YELLOW 43, 255, 120
+
+const rgblight_segment_t PROGMEM led_underglow_purple[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, RGBLED_NUM, HSV_KMN_PURPLE}
+);
+
+const rgblight_segment_t PROGMEM led_underglow_green[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, RGBLED_NUM, HSV_KMN_GREEN}
+);
+
+const rgblight_segment_t PROGMEM led_underglow_yellow[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, RGBLED_NUM, HSV_KMN_YELLOW}
+);
+
+// Array of layers for management
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ led_underglow_purple,
+ led_underglow_green,
+ led_underglow_yellow
+);
+
+// Layer color init
+void keyboard_post_init_user(void) {
+ rgblight_layers = my_rgb_layers;
+ layer_clear();
+ layer_on(0);
+ rgblight_enable();
+ rgblight_sethsv_noeeprom(HSV_KMN_PURPLE);
+}
+
+// Adjust layers based on which is active
+layer_state_t layer_state_set_user(layer_state_t state) {
+ rgblight_set_layer_state(0, layer_state_cmp(state, 0));
+ rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+ rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+ return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case ACCEL:
+ if (record->event.pressed) {
+ switch(acceleration_level) {
+ case ACCEL_0:
+ register_code16(KC_ACL0);
+ break;
+ case ACCEL_1:
+ register_code16(KC_ACL1);
+ break;
+ case ACCEL_2:
+ register_code16(KC_ACL2);
+ break;
+ }
+ } else {
+ switch(acceleration_level) {
+ case ACCEL_0:
+ unregister_code16(KC_ACL0);
+ break;
+ case ACCEL_1:
+ unregister_code16(KC_ACL1);
+ break;
+ case ACCEL_2:
+ unregister_code16(KC_ACL2);
+ break;
+ }
+ }
+ return false; // Skip all further processing of this key
+ default:
+ return true; // Process all other keycodes normally
+ }
+}
+
+// Standard encoder functionality
+void encoder_update_user(uint8_t index, bool clockwise) {
+ // Process encoder rotational movements
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ if (layer_state_is(0)) {
+ tap_code(KC_MS_WH_UP);
+ }
+ else if (layer_state_is(1)) {
+ tap_code(KC_LBRACKET);
+ }
+ else if (layer_state_is(2)) {
+ register_code16(KC_LCTRL);
+ register_code16(KC_MINUS);
+ unregister_code16(KC_MINUS);
+ unregister_code16(KC_LCTRL);
+ }
+ } else {
+ if (layer_state_is(0)) {
+ tap_code(KC_MS_WH_DOWN);
+ }
+ else if (layer_state_is(1)) {
+ tap_code(KC_RBRACKET);
+ }
+ else if (layer_state_is(2)) {
+ register_code16(KC_LCTRL);
+ register_code16(KC_EQUAL);
+ unregister_code16(KC_EQUAL);
+ unregister_code16(KC_LCTRL);
+ }
+ }
+ } else if (index == 1) { /* Second encoder */
+ if (clockwise) {
+ if (layer_state_is(0)) {
+ tap_code(KC_AUDIO_VOL_DOWN);
+ }
+ else if (layer_state_is(1)) {
+ register_code16(KC_LCTRL);
+ register_code16(KC_MINUS);
+ unregister_code16(KC_MINUS);
+ unregister_code16(KC_LCTRL);
+ }
+ else if (layer_state_is(2)) {
+ register_code16(KC_LSFT);
+ register_code16(KC_UP);
+ unregister_code16(KC_UP);
+ unregister_code16(KC_LSFT);
+ }
+ } else {
+ if (layer_state_is(0)) {
+ tap_code(KC_AUDIO_VOL_UP);
+ }
+ else if (layer_state_is(1)) {
+ register_code16(KC_LCTRL);
+ register_code16(KC_EQUAL);
+ unregister_code16(KC_EQUAL);
+ unregister_code16(KC_LCTRL);
+ }
+ else if (layer_state_is(2)) {
+ register_code16(KC_LSFT);
+ register_code16(KC_DOWN);
+ unregister_code16(KC_DOWN);
+ unregister_code16(KC_LSFT);
+ }
+ }
+ }
+}
+
+// Encoder press / tilt event handling
+// the core lynepad implementation will update the below variables on each matrix scan
+// Update the various codes below for customizing the tilt / push config
+
+extern int16_t enc1Center;
+extern int16_t enc1CenterPrev;
+extern int16_t enc2Center;
+extern int16_t enc2CenterPrev;
+extern int16_t enc2Up;
+extern int16_t enc2UpPrev;
+extern int16_t enc2Down;
+extern int16_t enc2DownPrev;
+extern int16_t enc2Left;
+extern int16_t enc2LeftPrev;
+extern int16_t enc2Right;
+extern int16_t enc2RightPrev;
+
+void matrix_scan_user(void) {
+ if (enc1Center != enc1CenterPrev) {
+ if (enc1Center < ENC_TILT_THRESHOLD) {
+ if (layer_state_is(0)) {
+ change_accel();
+ }
+ }
+ }
+ if (enc2Center != enc2CenterPrev) {
+ if (enc2Center < ENC_TILT_THRESHOLD) {
+ }
+ else {
+ }
+ /*
+ * Encoder sets ALL values when center is pressed so bail out at this point\
+ * to avoid the rest of the encoder buttons registering events
+ */
+ return;
+ }
+ if (enc2Up != enc2UpPrev) {
+ if (enc2Up < ENC_TILT_THRESHOLD) {
+ if (layer_state_is(0)) {
+ register_code16(KC_MS_WH_UP);
+ }
+ else if (layer_state_is(1)) {
+ register_code16(KC_UP);
+ }
+ }
+ else {
+ if (layer_state_is(0)) {
+ unregister_code16(KC_MS_WH_UP);
+ }
+ else if (layer_state_is(1)) {
+ unregister_code16(KC_UP);
+ }
+ }
+ }
+ if (enc2Down != enc2DownPrev) {
+ if (enc2Down < ENC_TILT_THRESHOLD) {
+ if (layer_state_is(0)) {
+ register_code16(KC_MS_WH_DOWN);
+ }
+ else if (layer_state_is(1)) {
+ register_code16(KC_DOWN);
+ }
+ }
+ else {
+ if (layer_state_is(0)) {
+ unregister_code16(KC_MS_WH_DOWN);
+ }
+ else if (layer_state_is(1)) {
+ unregister_code16(KC_DOWN);
+ }
+ }
+ }
+ if (enc2Left != enc2LeftPrev) {
+ if (enc2Left < ENC_TILT_THRESHOLD) {
+ if (layer_state_is(0)) {
+ register_code16(KC_MS_WH_LEFT);
+ }
+ else if (layer_state_is(1) || layer_state_is(2)) {
+ register_code16(KC_LEFT);
+ }
+ }
+ else {
+ if (layer_state_is(0)) {
+ unregister_code16(KC_MS_WH_LEFT);
+ }
+ else if (layer_state_is(1) || layer_state_is(2)) {
+ unregister_code16(KC_LEFT);
+ }
+ }
+ }
+ if (enc2Right != enc2RightPrev) {
+ if (enc2Right < ENC_TILT_THRESHOLD) {
+ if (layer_state_is(0)) {
+ register_code16(KC_MS_WH_RIGHT);
+ }
+ else if (layer_state_is(1) || layer_state_is(2)) {
+ register_code16(KC_RIGHT);
+ }
+ }
+ else {
+ if (layer_state_is(0)) {
+ unregister_code16(KC_MS_WH_RIGHT);
+ }
+ else if (layer_state_is(1) || layer_state_is(2)) {
+ unregister_code16(KC_RIGHT);
+ }
+ }
+ }
+}
diff --git a/attic/qmk/qvex/lynepad/rules.mk b/attic/qmk/qvex/lynepad/rules.mk
new file mode 100644
index 00000000..1ba2fa8f
--- /dev/null
+++ b/attic/qmk/qvex/lynepad/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
\ No newline at end of file
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/CMakeLists.txt b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/CMakeLists.txt
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/CMakeLists.txt
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/CMakeLists.txt
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.board b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.board
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.board
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.board
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.defconfig b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.defconfig
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.defconfig
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/Kconfig.defconfig
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/README.md b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/README.md
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/README.md
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/README.md
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/board.cmake b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/board.cmake
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/board.cmake
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/board.cmake
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.dts b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.dts
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.dts
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.dts
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.yaml b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.yaml
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.yaml
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840.yaml
diff --git a/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840_defconfig b/attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840_defconfig
similarity index 100%
rename from zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840_defconfig
rename to attic/zmk-config/config/boards/arm/itsybitsy_nrf52840/itsybitsy_nrf52840_defconfig
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/CMakeLists.txt b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/CMakeLists.txt
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/CMakeLists.txt
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/CMakeLists.txt
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.board b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.board
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.board
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.board
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.defconfig b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.defconfig
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.defconfig
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/Kconfig.defconfig
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/README.md b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/README.md
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/README.md
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/README.md
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/arduino_pro_micro_pins.dtsi b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/arduino_pro_micro_pins.dtsi
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/arduino_pro_micro_pins.dtsi
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/arduino_pro_micro_pins.dtsi
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/board.cmake b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/board.cmake
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/board.cmake
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/board.cmake
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.dts b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.dts
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.dts
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.dts
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.yaml b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.yaml
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.yaml
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini.yaml
diff --git a/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini_defconfig b/attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini_defconfig
similarity index 100%
rename from zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini_defconfig
rename to attic/zmk-config/config/boards/arm/sparkfun_pro_nrf52840_mini/sparkfun_pro_nrf52840_mini_defconfig
diff --git a/zmk-config/config/boards/shields/7skb/7skb.conf b/attic/zmk-config/config/boards/shields/7skb/7skb.conf
old mode 100755
new mode 100644
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb.conf
rename to attic/zmk-config/config/boards/shields/7skb/7skb.conf
diff --git a/zmk-config/config/boards/shields/7skb/7skb.dtsi b/attic/zmk-config/config/boards/shields/7skb/7skb.dtsi
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb.dtsi
rename to attic/zmk-config/config/boards/shields/7skb/7skb.dtsi
diff --git a/zmk-config/config/boards/shields/7skb/7skb.keymap b/attic/zmk-config/config/boards/shields/7skb/7skb.keymap
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb.keymap
rename to attic/zmk-config/config/boards/shields/7skb/7skb.keymap
diff --git a/zmk-config/config/boards/shields/7skb/7skb_left.conf b/attic/zmk-config/config/boards/shields/7skb/7skb_left.conf
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb_left.conf
rename to attic/zmk-config/config/boards/shields/7skb/7skb_left.conf
diff --git a/zmk-config/config/boards/shields/7skb/7skb_left.overlay b/attic/zmk-config/config/boards/shields/7skb/7skb_left.overlay
old mode 100755
new mode 100644
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb_left.overlay
rename to attic/zmk-config/config/boards/shields/7skb/7skb_left.overlay
diff --git a/zmk-config/config/boards/shields/7skb/7skb_right.conf b/attic/zmk-config/config/boards/shields/7skb/7skb_right.conf
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb_right.conf
rename to attic/zmk-config/config/boards/shields/7skb/7skb_right.conf
diff --git a/zmk-config/config/boards/shields/7skb/7skb_right.overlay b/attic/zmk-config/config/boards/shields/7skb/7skb_right.overlay
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/7skb_right.overlay
rename to attic/zmk-config/config/boards/shields/7skb/7skb_right.overlay
diff --git a/zmk-config/config/boards/shields/7skb/Kconfig.defconfig b/attic/zmk-config/config/boards/shields/7skb/Kconfig.defconfig
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/Kconfig.defconfig
rename to attic/zmk-config/config/boards/shields/7skb/Kconfig.defconfig
diff --git a/zmk-config/config/boards/shields/7skb/Kconfig.shield b/attic/zmk-config/config/boards/shields/7skb/Kconfig.shield
old mode 100755
new mode 100644
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/Kconfig.shield
rename to attic/zmk-config/config/boards/shields/7skb/Kconfig.shield
diff --git a/zmk-config/config/boards/shields/7skb/boards/nice_nano.conf b/attic/zmk-config/config/boards/shields/7skb/boards/nice_nano.conf
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/boards/nice_nano.conf
rename to attic/zmk-config/config/boards/shields/7skb/boards/nice_nano.conf
diff --git a/zmk-config/config/boards/shields/7skb/boards/nice_nano.overlay b/attic/zmk-config/config/boards/shields/7skb/boards/nice_nano.overlay
old mode 100755
new mode 100644
similarity index 100%
rename from zmk-config/config/boards/shields/7skb/boards/nice_nano.overlay
rename to attic/zmk-config/config/boards/shields/7skb/boards/nice_nano.overlay
diff --git a/zmk-config/config/boards/shields/azarashi64/Kconfig.defconfig b/attic/zmk-config/config/boards/shields/azarashi64/Kconfig.defconfig
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/Kconfig.defconfig
rename to attic/zmk-config/config/boards/shields/azarashi64/Kconfig.defconfig
diff --git a/zmk-config/config/boards/shields/azarashi64/Kconfig.shield b/attic/zmk-config/config/boards/shields/azarashi64/Kconfig.shield
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/Kconfig.shield
rename to attic/zmk-config/config/boards/shields/azarashi64/Kconfig.shield
diff --git a/zmk-config/config/boards/shields/azarashi64/README.md b/attic/zmk-config/config/boards/shields/azarashi64/README.md
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/README.md
rename to attic/zmk-config/config/boards/shields/azarashi64/README.md
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64.conf b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64.conf
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64.conf
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64.conf
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64.dtsi b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64.dtsi
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64.dtsi
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64.dtsi
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64.keymap b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64.keymap
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64.keymap
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64.keymap
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64_left.conf b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64_left.conf
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64_left.conf
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64_left.conf
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64_left.overlay b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64_left.overlay
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64_left.overlay
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64_left.overlay
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64_right.conf b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64_right.conf
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64_right.conf
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64_right.conf
diff --git a/zmk-config/config/boards/shields/azarashi64/azarashi64_right.overlay b/attic/zmk-config/config/boards/shields/azarashi64/azarashi64_right.overlay
similarity index 100%
rename from zmk-config/config/boards/shields/azarashi64/azarashi64_right.overlay
rename to attic/zmk-config/config/boards/shields/azarashi64/azarashi64_right.overlay
diff --git a/zmk-config/config/boards/shields/navi10/Kconfig.defconfig b/attic/zmk-config/config/boards/shields/navi10/Kconfig.defconfig
similarity index 100%
rename from zmk-config/config/boards/shields/navi10/Kconfig.defconfig
rename to attic/zmk-config/config/boards/shields/navi10/Kconfig.defconfig
diff --git a/zmk-config/config/boards/shields/navi10/Kconfig.shield b/attic/zmk-config/config/boards/shields/navi10/Kconfig.shield
similarity index 100%
rename from zmk-config/config/boards/shields/navi10/Kconfig.shield
rename to attic/zmk-config/config/boards/shields/navi10/Kconfig.shield
diff --git a/zmk-config/config/boards/shields/navi10/navi10.conf b/attic/zmk-config/config/boards/shields/navi10/navi10.conf
similarity index 100%
rename from zmk-config/config/boards/shields/navi10/navi10.conf
rename to attic/zmk-config/config/boards/shields/navi10/navi10.conf
diff --git a/zmk-config/config/boards/shields/navi10/navi10.keymap b/attic/zmk-config/config/boards/shields/navi10/navi10.keymap
similarity index 100%
rename from zmk-config/config/boards/shields/navi10/navi10.keymap
rename to attic/zmk-config/config/boards/shields/navi10/navi10.keymap
diff --git a/zmk-config/config/boards/shields/navi10/navi10.overlay b/attic/zmk-config/config/boards/shields/navi10/navi10.overlay
similarity index 100%
rename from zmk-config/config/boards/shields/navi10/navi10.overlay
rename to attic/zmk-config/config/boards/shields/navi10/navi10.overlay
diff --git a/zmk-config/config/boards/shields/tg4x/Kconfig.defconfig b/attic/zmk-config/config/boards/shields/tg4x/Kconfig.defconfig
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/Kconfig.defconfig
rename to attic/zmk-config/config/boards/shields/tg4x/Kconfig.defconfig
diff --git a/zmk-config/config/boards/shields/tg4x/Kconfig.shield b/attic/zmk-config/config/boards/shields/tg4x/Kconfig.shield
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/Kconfig.shield
rename to attic/zmk-config/config/boards/shields/tg4x/Kconfig.shield
diff --git a/zmk-config/config/boards/shields/tg4x/README.md b/attic/zmk-config/config/boards/shields/tg4x/README.md
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/README.md
rename to attic/zmk-config/config/boards/shields/tg4x/README.md
diff --git a/zmk-config/config/boards/shields/tg4x/boards/nice_nano.conf b/attic/zmk-config/config/boards/shields/tg4x/boards/nice_nano.conf
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/boards/nice_nano.conf
rename to attic/zmk-config/config/boards/shields/tg4x/boards/nice_nano.conf
diff --git a/zmk-config/config/boards/shields/tg4x/boards/nice_nano.overlay b/attic/zmk-config/config/boards/shields/tg4x/boards/nice_nano.overlay
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/boards/nice_nano.overlay
rename to attic/zmk-config/config/boards/shields/tg4x/boards/nice_nano.overlay
diff --git a/zmk-config/config/boards/shields/tg4x/tg4x.conf b/attic/zmk-config/config/boards/shields/tg4x/tg4x.conf
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/tg4x.conf
rename to attic/zmk-config/config/boards/shields/tg4x/tg4x.conf
diff --git a/zmk-config/config/boards/shields/tg4x/tg4x.keymap b/attic/zmk-config/config/boards/shields/tg4x/tg4x.keymap
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/tg4x.keymap
rename to attic/zmk-config/config/boards/shields/tg4x/tg4x.keymap
diff --git a/zmk-config/config/boards/shields/tg4x/tg4x.overlay b/attic/zmk-config/config/boards/shields/tg4x/tg4x.overlay
similarity index 100%
rename from zmk-config/config/boards/shields/tg4x/tg4x.overlay
rename to attic/zmk-config/config/boards/shields/tg4x/tg4x.overlay
diff --git a/zmk-config/config/corne.conf b/attic/zmk-config/config/corne.conf
similarity index 100%
rename from zmk-config/config/corne.conf
rename to attic/zmk-config/config/corne.conf
diff --git a/zmk-config/config/corne.keymap b/attic/zmk-config/config/corne.keymap
similarity index 100%
rename from zmk-config/config/corne.keymap
rename to attic/zmk-config/config/corne.keymap
diff --git a/zmk-config/config/lily58.conf b/attic/zmk-config/config/lily58.conf
similarity index 100%
rename from zmk-config/config/lily58.conf
rename to attic/zmk-config/config/lily58.conf
diff --git a/zmk-config/config/lily58.keymap b/attic/zmk-config/config/lily58.keymap
similarity index 100%
rename from zmk-config/config/lily58.keymap
rename to attic/zmk-config/config/lily58.keymap
diff --git a/zmk-config/config/nibble.conf b/attic/zmk-config/config/nibble.conf
similarity index 100%
rename from zmk-config/config/nibble.conf
rename to attic/zmk-config/config/nibble.conf
diff --git a/zmk-config/config/nibble.keymap b/attic/zmk-config/config/nibble.keymap
similarity index 100%
rename from zmk-config/config/nibble.keymap
rename to attic/zmk-config/config/nibble.keymap
diff --git a/zmk-config/config/tg4x.conf b/attic/zmk-config/config/tg4x.conf
similarity index 100%
rename from zmk-config/config/tg4x.conf
rename to attic/zmk-config/config/tg4x.conf
diff --git a/zmk-config/config/tg4x.keymap b/attic/zmk-config/config/tg4x.keymap
similarity index 100%
rename from zmk-config/config/tg4x.keymap
rename to attic/zmk-config/config/tg4x.keymap
diff --git a/attic/zmk-config/config/west.yml b/attic/zmk-config/config/west.yml
new file mode 100644
index 00000000..379d2919
--- /dev/null
+++ b/attic/zmk-config/config/west.yml
@@ -0,0 +1,11 @@
+manifest:
+ remotes:
+ - name: zmkfirmware
+ url-base: https://github.com/zmkfirmware
+ projects:
+ - name: zmk
+ remote: zmkfirmware
+ revision: main
+ import: app/west.yml
+ self:
+ path: config
diff --git a/zmk-config/vscode/extensions.json b/attic/zmk-config/vscode/extensions.json
similarity index 100%
rename from zmk-config/vscode/extensions.json
rename to attic/zmk-config/vscode/extensions.json
diff --git a/zmk-config/vscode/workspace.code-workspace b/attic/zmk-config/vscode/workspace.code-workspace
similarity index 100%
rename from zmk-config/vscode/workspace.code-workspace
rename to attic/zmk-config/vscode/workspace.code-workspace
diff --git a/miryoku/miryoku.json b/layouts/miryoku/miryoku.json
similarity index 100%
rename from miryoku/miryoku.json
rename to layouts/miryoku/miryoku.json
diff --git a/miryoku/miryoku.png b/layouts/miryoku/miryoku.png
similarity index 100%
rename from miryoku/miryoku.png
rename to layouts/miryoku/miryoku.png
diff --git a/layouts/nullbitsco/tidbit/layer-1---navigation.json b/layouts/nullbitsco/tidbit/layer-1---navigation.json
new file mode 100644
index 00000000..3924b403
--- /dev/null
+++ b/layouts/nullbitsco/tidbit/layer-1---navigation.json
@@ -0,0 +1,46 @@
+[
+ {
+ "backcolor": "#00f3ff",
+ "name": "Layer 1 - Navigation",
+ "author": "KemoNine"
+ },
+ [
+ {
+ "x": 1,
+ "a": 7
+ },
+ "TG(0)",
+ "TO(2)",
+ "TO(3)"
+ ],
+ [
+ "Pg Up",
+ "↑",
+ "Pg Dn",
+ "Gui + E"
+ ],
+ [
+ "←",
+ "↓",
+ "→",
+ "Space"
+ ],
+ [
+ "Home",
+ "Bksp",
+ "End",
+ "Enter"
+ ],
+ [
+ {
+ "a": 5
+ },
+ "Vol Up\nVol Dn\n\n\n\n\nMute",
+ {
+ "a": 7
+ },
+ "Esc",
+ "",
+ "Alt + F4"
+ ]
+]
\ No newline at end of file
diff --git a/layouts/nullbitsco/tidbit/layer-1---navigation.png b/layouts/nullbitsco/tidbit/layer-1---navigation.png
new file mode 100644
index 00000000..9d0a0da4
Binary files /dev/null and b/layouts/nullbitsco/tidbit/layer-1---navigation.png differ
diff --git a/layouts/nullbitsco/tidbit/layer-2---mouse.json b/layouts/nullbitsco/tidbit/layer-2---mouse.json
new file mode 100644
index 00000000..b4458bfb
--- /dev/null
+++ b/layouts/nullbitsco/tidbit/layer-2---mouse.json
@@ -0,0 +1,46 @@
+[
+ {
+ "backcolor": "#ba00ff",
+ "name": "Layer 2 - Mouse",
+ "author": "KemoNine"
+ },
+ [
+ {
+ "x": 1,
+ "a": 7
+ },
+ "TO(0)",
+ "TO(2)",
+ "TO(3)"
+ ],
+ [
+ "Left Click",
+ "Up",
+ "Right Click",
+ "Wheel Up"
+ ],
+ [
+ "Left",
+ "Down",
+ "Right",
+ "Wheel Down"
+ ],
+ [
+ "Esc",
+ "Ctrl + Alt + Tab",
+ "GUI + Down",
+ "Accel"
+ ],
+ [
+ {
+ "a": 5
+ },
+ "V Up\nV Dn\n\n\n\n\nMute",
+ {
+ "a": 7
+ },
+ "Vol Up",
+ "Vol Down",
+ "Accel Mode"
+ ]
+]
\ No newline at end of file
diff --git a/layouts/nullbitsco/tidbit/layer-2---mouse.png b/layouts/nullbitsco/tidbit/layer-2---mouse.png
new file mode 100644
index 00000000..ed71fd3d
Binary files /dev/null and b/layouts/nullbitsco/tidbit/layer-2---mouse.png differ
diff --git a/layouts/nullbitsco/tidbit/layer-3---number-pad.json b/layouts/nullbitsco/tidbit/layer-3---number-pad.json
new file mode 100644
index 00000000..ae0e85ee
--- /dev/null
+++ b/layouts/nullbitsco/tidbit/layer-3---number-pad.json
@@ -0,0 +1,46 @@
+[
+ {
+ "backcolor": "#ffa100",
+ "name": "Layer 3 - Number Pad",
+ "author": "KemoNine"
+ },
+ [
+ {
+ "x": 1,
+ "a": 7
+ },
+ "TO(0)",
+ "Num Lock",
+ "/"
+ ],
+ [
+ "7",
+ "8",
+ "9",
+ "*"
+ ],
+ [
+ "4",
+ "5",
+ "6",
+ "-"
+ ],
+ [
+ "1",
+ "2",
+ "3",
+ "+"
+ ],
+ [
+ {
+ "a": 5
+ },
+ "V Up\nV Dn\n\n\n\n\nMute",
+ {
+ "a": 7
+ },
+ "0",
+ ".",
+ "Enter"
+ ]
+]
\ No newline at end of file
diff --git a/layouts/nullbitsco/tidbit/layer-3---number-pad.png b/layouts/nullbitsco/tidbit/layer-3---number-pad.png
new file mode 100644
index 00000000..951994cd
Binary files /dev/null and b/layouts/nullbitsco/tidbit/layer-3---number-pad.png differ
diff --git a/layouts/nullbitsco/tidbit/layer-4---zmk.json b/layouts/nullbitsco/tidbit/layer-4---zmk.json
new file mode 100644
index 00000000..9ebd340a
--- /dev/null
+++ b/layouts/nullbitsco/tidbit/layer-4---zmk.json
@@ -0,0 +1,46 @@
+[
+ {
+ "backcolor": "#ff0000",
+ "name": "Layer 4 - ZMK",
+ "author": "KemoNine"
+ },
+ [
+ {
+ "x": 1,
+ "a": 7
+ },
+ "TO(0)",
+ "Reset",
+ "Boot"
+ ],
+ [
+ "RGB Hue Down",
+ "RGB Hue Up",
+ "RGB Bright Down",
+ "RGB Bright Up"
+ ],
+ [
+ "",
+ "",
+ "",
+ ""
+ ],
+ [
+ "Ext Pwr Tog",
+ "RGB Toggle",
+ "Output Toggle",
+ ""
+ ],
+ [
+ {
+ "a": 5
+ },
+ "Vol Up\nVol Dn\n\n\n\n\nMute",
+ {
+ "a": 7
+ },
+ "BT Prev",
+ "BT Next",
+ "BT Clear"
+ ]
+]
\ No newline at end of file
diff --git a/layouts/nullbitsco/tidbit/layer-4---zmk.png b/layouts/nullbitsco/tidbit/layer-4---zmk.png
new file mode 100644
index 00000000..5b628feb
Binary files /dev/null and b/layouts/nullbitsco/tidbit/layer-4---zmk.png differ
diff --git a/pockettype/layer-1---default.json b/layouts/pockettype/layer-1---default.json
similarity index 100%
rename from pockettype/layer-1---default.json
rename to layouts/pockettype/layer-1---default.json
diff --git a/pockettype/layer-1---default.png b/layouts/pockettype/layer-1---default.png
similarity index 100%
rename from pockettype/layer-1---default.png
rename to layouts/pockettype/layer-1---default.png
diff --git a/pockettype/layer-2---function.json b/layouts/pockettype/layer-2---function.json
similarity index 100%
rename from pockettype/layer-2---function.json
rename to layouts/pockettype/layer-2---function.json
diff --git a/pockettype/layer-2---function.png b/layouts/pockettype/layer-2---function.png
similarity index 100%
rename from pockettype/layer-2---function.png
rename to layouts/pockettype/layer-2---function.png
diff --git a/pockettype/layer-3---other.json b/layouts/pockettype/layer-3---other.json
similarity index 100%
rename from pockettype/layer-3---other.json
rename to layouts/pockettype/layer-3---other.json
diff --git a/pockettype/layer-3---other.png b/layouts/pockettype/layer-3---other.png
similarity index 100%
rename from pockettype/layer-3---other.png
rename to layouts/pockettype/layer-3---other.png
diff --git a/nullbitsco/nibble/layer-1.json b/nullbitsco/nibble/layer-1.json
deleted file mode 100644
index 18c7dace..00000000
--- a/nullbitsco/nibble/layer-1.json
+++ /dev/null
@@ -1,144 +0,0 @@
-[
- {
- "backcolor": "#ffa100",
- "name": "Layer 1",
- "author": "KemoNine"
- },
- [
- "~\nEsc",
- "!\n1",
- "@\n2",
- "#\n3",
- "$\n4",
- "%\n5",
- "^\n6",
- "&\n7",
- "*\n8",
- "(\n9",
- ")\n0",
- "_\n-",
- "+\n=",
- {
- "a": 6,
- "w": 2
- },
- "Backspace",
- "Home"
- ],
- [
- {
- "a": 4,
- "w": 1.5
- },
- "Tab",
- "Q",
- "W",
- "E",
- "R",
- "T",
- "Y",
- "U",
- "I",
- "O",
- "P",
- "{\n[",
- "}\n]",
- {
- "w": 1.5
- },
- "|\n\\",
- {
- "a": 6
- },
- "Page Up"
- ],
- [
- {
- "w": 1.75
- },
- "Alt + Fn",
- {
- "a": 4
- },
- "A",
- "S",
- "D",
- "F",
- "G",
- "H",
- "J",
- "K",
- "L",
- ":\n;",
- "\"\n'",
- {
- "a": 6,
- "w": 2.25
- },
- "Enter",
- "Page Down"
- ],
- [
- {
- "w": 2.25
- },
- "Shift",
- {
- "a": 4
- },
- "Z",
- "X",
- "C",
- "V",
- "B",
- "N",
- "M",
- "<\n,",
- ">\n.",
- "?\n/",
- {
- "a": 6,
- "w": 1.75
- },
- "Shift",
- {
- "a": 7
- },
- "↑",
- {
- "a": 6
- },
- "End"
- ],
- [
- {
- "w": 1.25
- },
- "Ctrl",
- {
- "w": 1.25
- },
- "Win",
- {
- "w": 1.25
- },
- "Alt",
- {
- "a": 7,
- "w": 6.25
- },
- "",
- "Fn",
- {
- "a": 6
- },
- "Ctrl",
- {
- "a": 7
- },
- "Alt",
- "←",
- "↓",
- "→"
- ]
-]
\ No newline at end of file
diff --git a/nullbitsco/nibble/layer-1.png b/nullbitsco/nibble/layer-1.png
deleted file mode 100644
index 5f9598d5..00000000
Binary files a/nullbitsco/nibble/layer-1.png and /dev/null differ
diff --git a/nullbitsco/nibble/layer-2.json b/nullbitsco/nibble/layer-2.json
deleted file mode 100644
index 68f4eb96..00000000
--- a/nullbitsco/nibble/layer-2.json
+++ /dev/null
@@ -1,132 +0,0 @@
-[
- {
- "backcolor": "#00f3ff",
- "name": "Layer 2",
- "author": "KemoNine"
- },
- [
- "~\n`",
- {
- "a": 6
- },
- "F1",
- "F2",
- "F3",
- "F4",
- "F5",
- "F6",
- "F7",
- "F8",
- "F9",
- "F10",
- "F11",
- "F12",
- {
- "w": 2
- },
- "Backaspace",
- "Del"
- ],
- [
- {
- "w": 1.5
- },
- "Caps",
- {
- "a": 7
- },
- "Pg Up",
- "Home",
- "Up",
- "End",
- "",
- "",
- "Mouse 1",
- "Up",
- "Mouse 2",
- "Scroll Up",
- "",
- "",
- {
- "w": 1.5
- },
- "Ins",
- {
- "a": 6
- },
- "Ins"
- ],
- [
- {
- "a": 7,
- "w": 1.75
- },
- "",
- "Pg Dn",
- "Left",
- "Down",
- "Right",
- "",
- "",
- "Left",
- "Down",
- "Right",
- "Scroll Down",
- "",
- {
- "w": 2.25
- },
- "Pint Screen",
- {
- "a": 6
- },
- "Prnt Scn"
- ],
- [
- {
- "a": 7,
- "w": 2.25
- },
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- {
- "w": 1.75
- },
- "",
- "Play Pause",
- ""
- ],
- [
- {
- "w": 1.25
- },
- "",
- {
- "w": 1.25
- },
- "",
- {
- "w": 1.25
- },
- "",
- {
- "w": 6.25
- },
- "",
- "",
- "Vol Up",
- "Vol Dn",
- "Mute",
- "",
- ""
- ]
-]
\ No newline at end of file
diff --git a/nullbitsco/nibble/layer-2.png b/nullbitsco/nibble/layer-2.png
deleted file mode 100644
index eaedfa2d..00000000
Binary files a/nullbitsco/nibble/layer-2.png and /dev/null differ