diff --git a/users/drashna/config.h b/users/drashna/config.h
index 64b4b64a..522d48a1 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -6,28 +6,6 @@
/* Set Polling rate to 1000Hz */
#define USB_POLLING_INTERVAL_MS 1
-#ifdef AUDIO_ENABLE
-# if __GNUC__ > 5
-# if __has_include("drashna_song_list.h")
-# include "drashna_song_list.h"
-# endif // if file exists
-# endif // __GNUC__
-
-# define AUDIO_CLICKY
-# define STARTUP_SONG SONG(RICK_ROLL)
-# define GOODBYE_SONG SONG(SONIC_RING)
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) }
-
-# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
-
-# define UNICODE_SONG_MAC SONG(RICK_ROLL)
-# define UNICODE_SONG_LNX SONG(RICK_ROLL)
-# define UNICODE_SONG_WIN SONG(RICK_ROLL)
-# define UNICODE_SONG_BSD SONG(RICK_ROLL)
-# define UNICODE_SONG_WINC SONG(RICK_ROLL)
-#endif // !AUDIO_ENABLE
-
#ifdef RGBLIGHT_ENABLE
# undef RGBLIGHT_ANIMATIONS
# if defined(__AVR__) && !defined(__AVR_AT90USB1286__)
@@ -128,7 +106,7 @@
# define TAPPING_TERM 175
#endif
-#define TAP_CODE_DELAY 5
+#define TAP_CODE_DELAY 10
/* Disable unused and unneeded features to reduce on firmware size */
#ifdef LOCKING_SUPPORT_ENABLE
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index ba19d480..1c353940 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -17,6 +17,12 @@ along with this program. If not, see .
#include "drashna.h"
+bool is_alt_tab_active = false;
+uint16_t alt_tab_timer = 0;
+
+bool is_ctrl_tab_active = false;
+uint16_t ctrl_tab_timer = 0;
+
userspace_config_t userspace_config;
bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed) {
@@ -50,21 +56,6 @@ bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this
return false;
}
-void bootmagic_lite(void) {
- matrix_scan();
-#if defined(DEBOUNCING_DELAY) && DEBOUNCING_DELAY > 0
- wait_ms(DEBOUNCING_DELAY * 2);
-#elif defined(DEBOUNCE) && DEBOUNCE > 0
- wait_ms(DEBOUNCE * 2);
-#else
- wait_ms(30);
-#endif
- matrix_scan();
- if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
- bootloader_jump();
- }
-}
-
__attribute__((weak)) void keyboard_pre_init_keymap(void) {}
void keyboard_pre_init_user(void) {
@@ -136,7 +127,38 @@ __attribute__((weak)) void matrix_scan_keymap(void) {}
// No global matrix scan code, so just run keymap's matrix
// scan function
+LEADER_EXTERNS();
void matrix_scan_user(void) {
+
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+
+ SEQ_ONE_KEY(KC_C) { // Inline Code
+ SEND_STRING("`` " SS_TAP(X_LEFT) SS_TAP(X_LEFT));
+ }
+ SEQ_ONE_KEY(KC_M) {
+ SEND_STRING("Mvh\nFrederik");
+ }
+ SEQ_TWO_KEYS(KC_C, KC_B) { // Discord code block
+ SEND_STRING("```c" SS_LSFT("\n\n") "``` " SS_TAP(X_UP));
+ }
+ }
+
+ if (is_alt_tab_active) {
+ if (timer_elapsed(alt_tab_timer) > 750) {
+ unregister_code(KC_LALT);
+ is_alt_tab_active = false;
+ }
+ }
+
+ if (is_ctrl_tab_active) {
+ if (timer_elapsed(ctrl_tab_timer) > 750) {
+ unregister_code(KC_LCTRL);
+ is_ctrl_tab_active = false;
+ }
+ }
+
static bool has_ran_yet;
if (!has_ran_yet) {
has_ran_yet = true;
@@ -174,11 +196,11 @@ __attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t
// Runs state check and changes underglow color and animation
layer_state_t default_layer_state_set_user(layer_state_t state) {
state = default_layer_state_set_keymap(state);
-#if 0
+//#if 0
# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- state = default_layer_state_set_rgb(state);
+ state = layer_state_set_rgb_light(state);
# endif // RGBLIGHT_ENABLE
-#endif
+//#endif
return state;
}
@@ -205,3 +227,76 @@ bool hasAllBitsInMask(uint8_t value, uint8_t mask) {
return (value & mask) == mask;
}
+
+#ifdef ENCODER_ENABLE
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ switch (biton32(layer_state)) {
+ case _WARCRAFT:
+ case _QWERTY:
+ // Move whole words. Hold shift to select while moving.
+ if (!clockwise) {
+ if (!is_alt_tab_active) {
+ is_alt_tab_active = true;
+ register_code(KC_LALT);
+ }
+ alt_tab_timer = timer_read();
+ tap_code16(KC_TAB);
+ } else {
+ if (!is_alt_tab_active) {
+ is_alt_tab_active = true;
+ register_code(KC_LALT);
+ }
+ alt_tab_timer = timer_read();
+ tap_code16(S(KC_TAB));
+ }
+ break;
+ case _RAISE:
+ if (!clockwise) {
+ if (!is_ctrl_tab_active) {
+ is_ctrl_tab_active = true;
+ register_code(KC_LCTRL);
+ }
+ ctrl_tab_timer = timer_read();
+ tap_code16(KC_TAB);
+ } else {
+ if (!is_ctrl_tab_active) {
+ is_ctrl_tab_active = true;
+ register_code(KC_LCTRL);
+ }
+ ctrl_tab_timer = timer_read();
+ tap_code16(S(KC_TAB));
+ }
+ break;
+ default:
+ // History scrubbing. For Adobe products, hold shift while moving
+ // backward to go forward instead.
+ if (clockwise) {
+ tap_code16(C(KC_Z));
+ } else {
+ tap_code16(C(KC_Y));
+ }
+ break;
+ }
+ } else if (index == 1) {
+ switch (biton32(layer_state)) {
+ case _QWERTY:
+ // Scrolling with Mouse wheel.
+ if (clockwise) {
+ tap_code(KC_WH_D);
+ } else {
+ tap_code(KC_WH_U);
+ }
+ break;
+ default:
+ // Volume control.
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ break;
+ }
+ }
+}
+#endif
\ No newline at end of file
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index c10ea511..588525a7 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -21,82 +21,81 @@ along with this program. If not, see .
#include "version.h"
#include "eeprom.h"
#include "wrappers.h"
-#include "process_records.h"
-#ifdef TAP_DANCE_ENABLE
-# include "tap_dances.h"
-#endif // TAP_DANCE_ENABLE
-#if defined(RGBLIGHT_ENABLE)
-# include "rgb_stuff.h"
-#endif
-#if defined(RGB_MATRIX_ENABLE)
-# include "rgb_matrix_stuff.h"
-#endif
-#if defined(OLED_DRIVER_ENABLE)
-# include "oled_stuff.h"
-#endif
-/* Define layer names */
enum userspace_layers {
_QWERTY = 0,
_NUMLOCK = 0,
- _COLEMAK,
- _DVORAK,
_WORKMAN,
- _NORMAN,
- _MALTRON,
- _EUCALYN,
- _CARPLAX,
_MODS, /* layer 8 */
_GAMEPAD,
_DIABLO,
+ _WARCRAFT,
_MACROS,
_MEDIA,
_LOWER,
_RAISE,
+ _NAV,
_ADJUST,
};
-bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
-bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
-void matrix_init_keymap(void);
-void shutdown_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-layer_state_t default_layer_state_set_keymap(layer_state_t state);
-void led_set_keymap(uint8_t usb_led);
-void eeconfig_init_keymap(void);
-bool hasAllBitsInMask(uint8_t value, uint8_t mask);
+#if !defined(DROP_ALT)
-// clang-format off
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- bool is_overwatch :1;
- bool nuke_switch :1;
- bool swapped_numbers :1;
- bool rgb_matrix_idle_anim :1;
- };
-} userspace_config_t;
-// clang-format on
+ #include "process_records.h"
+ #ifdef TAP_DANCE_ENABLE
+ # include "tap_dances.h"
+ #endif // TAP_DANCE_ENABLE
+ #if defined(RGBLIGHT_ENABLE)
+ # include "rgb_stuff.h"
+ #endif
+ #if defined(RGB_MATRIX_ENABLE)
+ # include "rgb_matrix_stuff.h"
+ #endif
+ #if defined(OLED_DRIVER_ENABLE)
+ # include "oled_stuff.h"
+ #endif
+ /* Define layer names */
-extern userspace_config_t userspace_config;
+ bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
+ bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
+ void matrix_init_keymap(void);
+ void shutdown_keymap(void);
+ void suspend_power_down_keymap(void);
+ void suspend_wakeup_init_keymap(void);
+ void matrix_scan_keymap(void);
+ layer_state_t layer_state_set_keymap(layer_state_t state);
+ layer_state_t default_layer_state_set_keymap(layer_state_t state);
+ void led_set_keymap(uint8_t usb_led);
+ void eeconfig_init_keymap(void);
+ bool hasAllBitsInMask(uint8_t value, uint8_t mask);
+
+ // clang-format off
+ typedef union {
+ uint32_t raw;
+ struct {
+ bool rgb_layer_change :1;
+ bool swapped_numbers :1;
+ bool rgb_matrix_idle_anim :1;
+ };
+ } userspace_config_t;
+ // clang-format on
+
+ extern userspace_config_t userspace_config;
+
+ /*
+ Custom Keycodes for Diablo 3 layer
+ But since TD() doesn't work when tap dance is disabled
+ We use custom codes here, so we can substitute the right stuff
+ */
+ #ifdef TAP_DANCE_ENABLE
+ # define KC_D3_1 TD(TD_D3_1)
+ # define KC_D3_2 TD(TD_D3_2)
+ # define KC_D3_3 TD(TD_D3_3)
+ # define KC_D3_4 TD(TD_D3_4)
+ #else // TAP_DANCE_ENABLE
+ # define KC_D3_1 KC_1
+ # define KC_D3_2 KC_2
+ # define KC_D3_3 KC_3
+ # define KC_D3_4 KC_4
+ #endif // TAP_DANCE_ENABLE
+#endif
-/*
-Custom Keycodes for Diablo 3 layer
-But since TD() doesn't work when tap dance is disabled
-We use custom codes here, so we can substitute the right stuff
-*/
-#ifdef TAP_DANCE_ENABLE
-# define KC_D3_1 TD(TD_D3_1)
-# define KC_D3_2 TD(TD_D3_2)
-# define KC_D3_3 TD(TD_D3_3)
-# define KC_D3_4 TD(TD_D3_4)
-#else // TAP_DANCE_ENABLE
-# define KC_D3_1 KC_1
-# define KC_D3_2 KC_2
-# define KC_D3_3 KC_3
-# define KC_D3_4 KC_4
-#endif // TAP_DANCE_ENABLE
diff --git a/users/drashna/oled_stuff.c b/users/drashna/oled_stuff.c
index 7580de1d..1f909994 100644
--- a/users/drashna/oled_stuff.c
+++ b/users/drashna/oled_stuff.c
@@ -77,151 +77,69 @@ void render_keylogger_status(void) {
void render_default_layer_state(void) {
oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
- switch (get_highest_layer(default_layer_state)) {
- case _QWERTY:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
+ switch (get_highest_layer(layer_state)) {
+ case _DIABLO:
+ oled_write_P(PSTR(OLED_RENDER_LAYOUT_DIABLO), false);
break;
- case _COLEMAK:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false);
- break;
- case _DVORAK:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false);
- break;
- case _WORKMAN:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_WORKMAN), false);
- break;
- case _NORMAN:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_NORMAN), false);
- break;
- case _MALTRON:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_MALTRON), false);
- break;
- case _EUCALYN:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_EUCALYN), false);
- break;
- case _CARPLAX:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_CARPLAX), false);
+ case _WARCRAFT:
+ oled_write_P(PSTR(OLED_RENDER_LAYOUT_WARCRAFT), false);
break;
+ default:
+ switch (get_highest_layer(default_layer_state)) {
+ case _WORKMAN:
+ oled_write_P(PSTR(OLED_RENDER_LAYOUT_WORKMAN), false);
+ break;
+ case _QWERTY:
+ oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
+ break;
+ }
}
-#ifdef OLED_DISPLAY_128X64
oled_advance_page(true);
-#endif
}
+// void render_default_layer_state(void) {
+// oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
+// oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), layer_state_is(_QWERTY));
+// oled_write_P(PSTR(OLED_RENDER_LAYOUT_DIABLO), layer_state_is(_WARCRAFT));
+// oled_write_P(PSTR(OLED_RENDER_LAYOUT_WARCRAFT), layer_state_is(_DIABLO));
+// oled_advance_page(true);
+// }
+
void render_layer_state(void) {
oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false);
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_LAYER_LOWER), layer_state_is(_LOWER));
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_LAYER_RAISE), layer_state_is(_RAISE));
-#if _MODS
-# ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-# endif
oled_write_P(PSTR(OLED_RENDER_LAYER_MODS), layer_state_is(_MODS));
-#endif
-#ifdef OLED_DISPLAY_128X64
+ oled_write_P(PSTR(" "), false);
+ oled_write_P(PSTR(OLED_RENDER_LAYER_NAV), layer_state_is(_NAV));
oled_advance_page(true);
-#endif
}
void render_keylock_status(uint8_t led_usb_state) {
oled_write_P(PSTR(OLED_RENDER_LOCK_NAME), false);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state & (1 << USB_LED_NUM_LOCK));
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state & (1 << USB_LED_CAPS_LOCK));
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state & (1 << USB_LED_SCROLL_LOCK));
-#ifndef OLED_DISPLAY_128X64
oled_advance_page(true);
-#endif
}
void render_mod_status(uint8_t modifiers) {
oled_write_P(PSTR(OLED_RENDER_MODS_NAME), false);
oled_write_P(PSTR(OLED_RENDER_MODS_SFT), (modifiers & MOD_MASK_SHIFT));
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_MODS_CTL), (modifiers & MOD_MASK_CTRL));
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_MODS_ALT), (modifiers & MOD_MASK_ALT));
-#ifdef OLED_DISPLAY_128X64
oled_write_P(PSTR(" "), false);
-#endif
oled_write_P(PSTR(OLED_RENDER_MODS_GUI), (modifiers & MOD_MASK_GUI));
}
-void render_bootmagic_status(void) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
-
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NAME), false);
-#ifdef OLED_DISPLAY_128X64
- if (keymap_config.swap_lctl_lgui)
-#else
- oled_write_P(PSTR(" "), false);
-#endif
- {
- oled_write_P(logo[1][0], false);
-#ifdef OLED_DISPLAY_128X64
- } else {
-#endif
- oled_write_P(logo[0][0], false);
- }
- oled_write_P(PSTR(" "), false);
-#ifdef OLED_DISPLAY_128X64
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
- oled_write_P(PSTR(" "), false);
- oled_write_ln_P(PSTR(OLED_RENDER_BOOTMAGIC_NOGUI), !keymap_config.no_gui);
- oled_write_P(PSTR("Magic "), false);
- if (keymap_config.swap_lctl_lgui)
-#endif
- {
- oled_write_P(logo[1][1], false);
-#ifdef OLED_DISPLAY_128X64
- } else {
-#endif
- oled_write_P(logo[0][1], false);
- }
- oled_write_P(PSTR(" "), false);
-#ifdef OLED_DISPLAY_128X64
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_GRV), keymap_config.swap_grave_esc);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_CAPS), keymap_config.swap_control_capslock);
- oled_advance_page(true);
-#else
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
-#endif
-}
-
-void render_user_status(void) {
- oled_write_P(PSTR(OLED_RENDER_USER_NAME), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_USER_ANIM), userspace_config.rgb_matrix_idle_anim);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_USER_LAYR), userspace_config.rgb_layer_change);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_USER_NUKE), userspace_config.nuke_switch);
-#ifdef OLED_DISPLAY_128X64
- oled_advance_page(true);
-#endif
-}
-
__attribute__((weak)) void oled_driver_render_logo(void) {
// clang-format off
static const char PROGMEM qmk_logo[] = {
@@ -250,24 +168,19 @@ void render_status_secondary(void) {
void render_status_main(void) {
/* Show Keyboard Layout */
render_default_layer_state();
+ render_layer_state();
+
render_keylock_status(host_keyboard_leds());
- render_bootmagic_status();
- render_user_status();
+
+ render_mod_status(get_mods() | get_oneshot_mods());
+
+ //render_bootmagic_status();
+ //render_user_status();
render_keylogger_status();
}
void oled_task_user(void) {
- if (timer_elapsed32(oled_timer) > 30000) {
- oled_off();
- return;
- }
-#ifndef SPLIT_KEYBOARD
- else {
- oled_on();
- }
-#endif
-
update_log();
if (is_master) {
diff --git a/users/drashna/oled_stuff.h b/users/drashna/oled_stuff.h
index 662e206b..64f92ff7 100644
--- a/users/drashna/oled_stuff.h
+++ b/users/drashna/oled_stuff.h
@@ -11,19 +11,16 @@ bool process_record_user_oled(uint16_t keycode, keyrecord_t *record);
# define OLED_RENDER_LAYOUT_NAME "Layout: "
# define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
-# define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
-# define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
-# define OLED_RENDER_LAYOUT_WORKMAN "Workman"
-# define OLED_RENDER_LAYOUT_NORMAN "Norman"
-# define OLED_RENDER_LAYOUT_MALTRON "Matron"
-# define OLED_RENDER_LAYOUT_EUCALYN "Eucalyn"
-# define OLED_RENDER_LAYOUT_CARPLAX "Carplax"
+# define OLED_RENDER_LAYOUT_WARCRAFT "Warcraft"
+# define OLED_RENDER_LAYOUT_DIABLO "Diablo"
+# define OLED_RENDER_LAYOUT_WORKMAN "Workman"
# define OLED_RENDER_LAYER_NAME "Layer:\n"
# define OLED_RENDER_LAYER_LOWER "Lower"
# define OLED_RENDER_LAYER_RAISE "Raise"
-# define OLED_RENDER_LAYER_ADJUST "Adjust"
+# define OLED_RENDER_LAYER_ADJUST "Adj"
# define OLED_RENDER_LAYER_MODS "Mods"
+# define OLED_RENDER_LAYER_NAV "Nav"
# define OLED_RENDER_LOCK_NAME "Lock: "
# define OLED_RENDER_LOCK_NUML "NUML"
@@ -36,56 +33,4 @@ bool process_record_user_oled(uint16_t keycode, keyrecord_t *record);
# define OLED_RENDER_MODS_ALT "Alt"
# define OLED_RENDER_MODS_GUI "GUI"
-# define OLED_RENDER_BOOTMAGIC_NAME "Boot "
-# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
-# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
-# define OLED_RENDER_BOOTMAGIC_GRV "GRV"
-# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
-
-# define OLED_RENDER_USER_NAME "USER:"
-# define OLED_RENDER_USER_ANIM "Anim"
-# define OLED_RENDER_USER_LAYR "Layr"
-# define OLED_RENDER_USER_NUKE "Nuke"
-
-#else
-# define OLED_RENDER_KEYLOGGER "KLogr"
-
-# define OLED_RENDER_LAYOUT_NAME "Lyout"
-# define OLED_RENDER_LAYOUT_QWERTY " QRTY"
-# define OLED_RENDER_LAYOUT_COLEMAK " COLE"
-# define OLED_RENDER_LAYOUT_DVORAK " DVRK"
-# define OLED_RENDER_LAYOUT_WORKMAN " WKMN"
-# define OLED_RENDER_LAYOUT_NORMAN " NORM"
-# define OLED_RENDER_LAYOUT_MALTRON " MLTN"
-# define OLED_RENDER_LAYOUT_EUCALYN " ECLN"
-# define OLED_RENDER_LAYOUT_CARPLAX " CRPX"
-
-# define OLED_RENDER_LAYER_NAME "LAYER"
-# define OLED_RENDER_LAYER_LOWER "Lower"
-# define OLED_RENDER_LAYER_RAISE "Raise"
-# define OLED_RENDER_LAYER_ADJUST "Adjst"
-# define OLED_RENDER_LAYER_MODS " Mods"
-
-# define OLED_RENDER_LOCK_NAME "Lock:"
-# define OLED_RENDER_LOCK_NUML "N"
-# define OLED_RENDER_LOCK_CAPS "C"
-# define OLED_RENDER_LOCK_SCLK "S"
-
-# define OLED_RENDER_MODS_NAME "Mods: "
-# define OLED_RENDER_MODS_SFT "S"
-# define OLED_RENDER_MODS_CTL "C"
-# define OLED_RENDER_MODS_ALT "A"
-# define OLED_RENDER_MODS_GUI "G"
-
-# define OLED_RENDER_BOOTMAGIC_NAME "BTMGK"
-# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
-# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
-# define OLED_RENDER_BOOTMAGIC_GRV "GRV"
-# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
-
-# define OLED_RENDER_USER_NAME "USER:"
-# define OLED_RENDER_USER_ANIM "Anim"
-# define OLED_RENDER_USER_LAYR "Layr"
-# define OLED_RENDER_USER_NUKE "Nuke"
-
#endif
diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c
index 101b3d95..e31781d2 100644
--- a/users/drashna/process_records.c
+++ b/users/drashna/process_records.c
@@ -30,7 +30,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
) {
switch (keycode) {
- case KC_QWERTY ... KC_WORKMAN:
+ case KC_QWERTY:
if (record->event.pressed) {
uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
if (!mods) {
@@ -101,28 +101,96 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
break;
-#ifdef UNICODE_ENABLE
- case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
- if (record->event.pressed) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
- break;
- case UC_TABL: // ┬─┬ノ( º _ ºノ)
- if (record->event.pressed) {
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
- break;
- case UC_SHRG: // ¯\_(ツ)_/¯
- if (record->event.pressed) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- break;
- case UC_DISA: // ಠ_ಠ
- if (record->event.pressed) {
- send_unicode_string("ಠ_ಠ");
- }
- break;
-#endif
+ static bool bsdel_mods = false;
+ case BSPCDEL:
+ if (record->event.pressed) {
+ if (get_mods() & MOD_BIT(KC_LSFT)) {
+ unregister_code(KC_LSFT);
+ register_code(KC_DEL);
+ bsdel_mods = true;
+ } else {
+ register_code(KC_BSPC);
+ }
+ } else {
+ if (bsdel_mods) {
+ unregister_code(KC_DEL);
+ register_code(KC_LSFT);
+ bsdel_mods = false;
+ } else {
+ unregister_code(KC_BSPC);
+ }
+ }
+ return false;
+ break;
+
+ case OE:
+ if (record->event.pressed) {
+ SEND_STRING(SS_DOWN(X_LALT));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_TAP(X_KP_2));
+ SEND_STRING(SS_TAP(X_KP_1));
+ SEND_STRING(SS_TAP(X_KP_6));
+ SEND_STRING(SS_UP(X_LALT));
+ return false;
+ }
+ break;
+ case oe: //if (get_mods() & MODS_SHIFT_MASK)
+ if (record->event.pressed) {
+ SEND_STRING(SS_DOWN(X_LALT));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_TAP(X_KP_2));
+ SEND_STRING(SS_TAP(X_KP_4));
+ SEND_STRING(SS_TAP(X_KP_8));
+ SEND_STRING(SS_UP(X_LALT));
+ return false;
+ }
+ break;
+ case AE:
+ if (record->event.pressed) {
+ SEND_STRING(SS_DOWN(X_LALT));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_TAP(X_KP_1));
+ SEND_STRING(SS_TAP(X_KP_9));
+ SEND_STRING(SS_TAP(X_KP_8));
+ SEND_STRING(SS_UP(X_LALT));
+ return false;
+ }
+ break;
+ case ae:
+ if (record->event.pressed) {
+ SEND_STRING(SS_DOWN(X_LALT));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_TAP(X_KP_2));
+ SEND_STRING(SS_TAP(X_KP_3));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_UP(X_LALT));
+ return false;
+ }
+ break;
+ case AA:
+ if (record->event.pressed) {
+ SEND_STRING(SS_DOWN(X_LALT));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_TAP(X_KP_1));
+ SEND_STRING(SS_TAP(X_KP_9));
+ SEND_STRING(SS_TAP(X_KP_7));
+ SEND_STRING(SS_UP(X_LALT));
+ return false;
+ }
+ break;
+ case aa:
+ if (record->event.pressed) {
+ SEND_STRING(SS_DOWN(X_LALT));
+ SEND_STRING(SS_TAP(X_KP_0));
+ SEND_STRING(SS_TAP(X_KP_2));
+ SEND_STRING(SS_TAP(X_KP_2));
+ SEND_STRING(SS_TAP(X_KP_9));
+ SEND_STRING(SS_UP(X_LALT));
+ return false;
+ }
+ break;
+
+
case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
if (record->event.pressed) {
diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h
index 999882d4..37491b6e 100644
--- a/users/drashna/process_records.h
+++ b/users/drashna/process_records.h
@@ -10,9 +10,6 @@
enum userspace_custom_keycodes {
VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
KC_QWERTY, // Sets default layer to QWERTY
- KC_COLEMAK, // Sets default layer to COLEMAK
- KC_DVORAK, // Sets default layer to DVORAK
- KC_WORKMAN, // Sets default layer to WORKMAN
KC_DIABLO_CLEAR, // Clears all Diablo Timers
KC_MAKE, // Run keyboard's customized make command
KC_RGB_T, // Toggles RGB Layer Indication mode
@@ -23,11 +20,18 @@ enum userspace_custom_keycodes {
KC_SECRET_4, // test4
KC_SECRET_5, // test5
KC_CCCV, // Hold to copy, tap to paste
+ aa,
+ AA,
+ oe,
+ OE,
+ ae,
+ AE,
KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
UC_FLIP, // (ಠ痊ಠ)┻━┻
UC_TABL, // ┬─┬ノ( º _ ºノ)
UC_SHRG, // ¯\_(ツ)_/¯
UC_DISA, // ಠ_ಠ
+ BSPCDEL,
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
};
diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c
index 06b1e3c0..2ab5d1b4 100644
--- a/users/drashna/rgb_stuff.c
+++ b/users/drashna/rgb_stuff.c
@@ -273,13 +273,13 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
if (userspace_config.rgb_layer_change) {
switch (get_highest_layer(state)) {
- case _MACROS:
- rgblight_set_hsv_and_mode(HSV_ORANGE, userspace_config.is_overwatch ? RGBLIGHT_MODE_SNAKE + 2 : RGBLIGHT_MODE_SNAKE + 3);
+ case _QWERTY:
+ rgblight_set_hsv_and_mode(HSV_CYAN, RGBLIGHT_MODE_STATIC_LIGHT);
break;
- case _MEDIA:
- rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1);
+ case _WORKMAN:
+ rgblight_set_hsv_and_mode(HSV_PURPLE, RGBLIGHT_MODE_STATIC_LIGHT);
break;
- case _GAMEPAD:
+ case _WARCRAFT:
rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2);
break;
case _DIABLO:
@@ -298,26 +298,8 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) {
{
uint8_t mode = get_highest_layer(state) == _MODS ? RGBLIGHT_MODE_BREATHING : RGBLIGHT_MODE_STATIC_LIGHT;
switch (get_highest_layer(default_layer_state)) {
- case _COLEMAK:
- rgblight_set_hsv_and_mode(HSV_MAGENTA, mode);
- break;
- case _DVORAK:
- rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, mode);
- break;
- case _WORKMAN:
- rgblight_set_hsv_and_mode(HSV_GOLDENROD, mode);
- break;
- case _NORMAN:
- rgblight_set_hsv_and_mode(HSV_CORAL, mode);
- break;
- case _MALTRON:
- rgblight_set_hsv_and_mode(HSV_YELLOW, mode);
- break;
- case _EUCALYN:
- rgblight_set_hsv_and_mode(HSV_PINK, mode);
- break;
- case _CARPLAX:
- rgblight_set_hsv_and_mode(HSV_BLUE, mode);
+ case _QWERTY:
+ rgblight_set_hsv_and_mode(HSV_CYAN, mode);
break;
default:
rgblight_set_hsv_and_mode(HSV_CYAN, mode);
@@ -330,4 +312,4 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) {
#endif // RGBLIGHT_ENABLE
return state;
-}
+}
\ No newline at end of file
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index 051368ff..80d204fc 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -1,64 +1,66 @@
-SRC += drashna.c \
- process_records.c
+ifneq ($(strip $(DROP_ALT)), yes)
+ SRC += drashna.c \
+ process_records.c
-ifneq ($(PLATFORM),CHIBIOS)
- LTO_ENABLE = yes
-endif
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
-
-ifneq ($(strip $(NO_SECRETS)), yes)
- ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
+ ifneq ($(PLATFORM),CHIBIOS)
+ LTO_ENABLE = yes
endif
- ifeq ($(strip $(NO_SECRETS)), lite)
- OPT_DEFS += -DNO_SECRETS
+ SPACE_CADET_ENABLE = no
+ GRAVE_ESC_ENABLE = no
+
+ ifneq ($(strip $(NO_SECRETS)), yes)
+ ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
+ SRC += secrets.c
+ endif
+ ifeq ($(strip $(NO_SECRETS)), lite)
+ OPT_DEFS += -DNO_SECRETS
+ endif
endif
-endif
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += rgb_stuff.c
- ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
- OPT_DEFS += -DINDICATOR_LIGHTS
+ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
+ SRC += tap_dances.c
endif
- ifeq ($(strip $(RGBLIGHT_TWINKLE)), yes)
- OPT_DEFS += -DRGBLIGHT_TWINKLE
+
+ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
+ SRC += rgb_stuff.c
+ ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
+ OPT_DEFS += -DINDICATOR_LIGHTS
+ endif
+ ifeq ($(strip $(RGBLIGHT_TWINKLE)), yes)
+ OPT_DEFS += -DRGBLIGHT_TWINKLE
+ endif
+ ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes)
+ OPT_DEFS += -DRGBLIGHT_NOEEPROM
+ endif
+ ifeq ($(strip $(RGBLIGHT_STARTUP_ANIMATION)), yes)
+ OPT_DEFS += -DRGBLIGHT_STARTUP_ANIMATION
+ endif
endif
- ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes)
- OPT_DEFS += -DRGBLIGHT_NOEEPROM
+
+ RGB_MATRIX_ENABLE ?= no
+ ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
+ SRC += rgb_matrix_stuff.c
endif
- ifeq ($(strip $(RGBLIGHT_STARTUP_ANIMATION)), yes)
- OPT_DEFS += -DRGBLIGHT_STARTUP_ANIMATION
+
+
+ ifdef CONSOLE_ENABLE
+ ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
+ OPT_DEFS += -DKEYLOGGER_ENABLE
+ endif
endif
-endif
-RGB_MATRIX_ENABLE ?= no
-ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
- SRC += rgb_matrix_stuff.c
-endif
-
-
-ifdef CONSOLE_ENABLE
- ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
- OPT_DEFS += -DKEYLOGGER_ENABLE
+ ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
+ OPT_DEFS += -DMAKE_BOOTLOADER
endif
-endif
-ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
- OPT_DEFS += -DMAKE_BOOTLOADER
-endif
+ # At least until build.mk or the like drops, this is here to prevent
+ # VUSB boards from enabling NKRO, as they do not support it. Ideally
+ # this should be handled per keyboard, but until that happens ...
+ ifeq ($(strip $(PROTOCOL)), VUSB)
+ NKRO_ENABLE = no
+ endif
-# At least until build.mk or the like drops, this is here to prevent
-# VUSB boards from enabling NKRO, as they do not support it. Ideally
-# this should be handled per keyboard, but until that happens ...
-ifeq ($(strip $(PROTOCOL)), VUSB)
- NKRO_ENABLE = no
-endif
-
-ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
- SRC += oled_stuff.c
-endif
+ ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
+ SRC += oled_stuff.c
+ endif
+endif
\ No newline at end of file
diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h
index d22e2959..9fd96025 100644
--- a/users/drashna/wrappers.h
+++ b/users/drashna/wrappers.h
@@ -17,6 +17,8 @@ expanded before being used as arguments to the LAYOUT_xxx macro.
#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
#define LAYOUT_gergo_wrapper(...) LAYOUT_gergo(__VA_ARGS__)
+#define LAYOUT_ut472_wrapper(...) LAYOUT_ut472(__VA_ARGS__)
+#define LAYOUT_dropALT_wrapper(...) LAYOUT_dropALT(__VA_ARGS__)
/*
Blocks for each of the four major keyboard layouts
@@ -34,45 +36,14 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
+// #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, TD_ae
+// #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, TD_oe
+// #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, TD_aa
+
#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
-#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-
-#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
-#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
@@ -81,70 +52,6 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
-#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
-#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
-#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U
-#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
-#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
-#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
-
-#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
-#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R
-#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
-
-
-#define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q
-#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
-#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W
-
-#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
-#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N
-#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN
-
-
-#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
-
-#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
-#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN
-#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
-
-#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
-#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
-#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
-
-#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
-#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
-#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
-#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
-#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
-
-#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
-#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O // KC_I
-#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
-
-
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
@@ -152,33 +59,38 @@ NOTE: These are all the same length. If you do a search/replace
#define ___________________BLANK___________________ _______, _______, _______, _______, _______
+#define _________________LOWER_L1__________________ ___________________BLANK___________________
+#define _________________LOWER_L2__________________ _______, KC_MPRV, KC_MPLY, KC_MNXT, _______
+#define _________________LOWER_L3__________________ ___________________BLANK___________________
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
+#define _________________LOWER_R1__________________ KC_SLSH, KC_7, KC_8, KC_9, KC_MINS
+#define _________________LOWER_R2__________________ KC_ASTR, KC_4, KC_5, KC_6, KC_COMM
+#define _________________LOWER_R3__________________ KC_0, KC_1, KC_2, KC_3, KC_EQL
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+#define _________________RAISE_L1__________________ KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE
+#define _________________RAISE_L2__________________ KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_GRV
+#define _________________RAISE_L3__________________ KC_PERC, KC_CIRC, KC_LCBR, KC_RCBR, KC_TILD
+#define _________________RAISE_R1__________________ _______, KC_UNDS, ALGR(KC_5),_______,KC_BSLS
+#define _________________RAISE_R2__________________ KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC
+#define _________________RAISE_R3__________________ KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_SLSH
+#define _________________ADJUST_L1_________________ ___________________BLANK___________________
+#define _________________ADJUST_L2_________________ _______, RGB_SAI, RGB_HUI, RGB_VAI, _______
+#define _________________ADJUST_L3_________________ _______, RGB_SAD, RGB_HUD, RGB_VAD, _______
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
+#define _________________ADJUST_R1_________________ RGB_TOG, KC_F7, KC_F8, KC_F9, KC_F10
+#define _________________ADJUST_R2_________________ _______, KC_F4, KC_F5, KC_F6, KC_F11
+#define _________________ADJUST_R3_________________ _______, KC_F1, KC_F2, KC_F3, KC_F12
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+#define ___________________NAV_L1__________________ DF(_QWERTY), DF(_WORKMAN), TG(_WARCRAFT), TG(_DIABLO), _______
+#define ___________________NAV_L2__________________ _______, _______, KC_UP , _______, _______
+#define ___________________NAV_L3__________________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______
+#define ___________________NAV_R1__________________ KC_PGUP, KC_HOME, KC_UP, KC_END, _______
+#define ___________________NAV_R2__________________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______
+#define ___________________NAV_R3__________________ _______, _______, _______, _______, _______
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
-#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
// clang-format on
+
diff --git a/users/frederik/frederik.h b/users/frederik/frederik.h
index 9ea104b4..25174562 100644
--- a/users/frederik/frederik.h
+++ b/users/frederik/frederik.h
@@ -22,8 +22,6 @@ along with this program. If not, see .
#include "eeprom.h"
#include "wrappers.h"
-
-/* Define layer names */
enum userspace_layers {
_QWERTY = 0,
_NUMLOCK = 0,
@@ -38,17 +36,4 @@ enum userspace_layers {
_RAISE,
_NAV,
_ADJUST,
-};
-
-// clang-format off
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- bool swapped_numbers :1;
- bool rgb_matrix_idle_anim :1;
- };
-} userspace_config_t;
-// clang-format on
-
-extern userspace_config_t userspace_config;
+};
\ No newline at end of file
diff --git a/users/frederik/rules.mk b/users/frederik/rules.mk
new file mode 100644
index 00000000..ce62b4c8
--- /dev/null
+++ b/users/frederik/rules.mk
@@ -0,0 +1,66 @@
+ifeq ($(strip $(DROP_ALT)), yes)
+ SRC += drashna.c \
+ process_records.c
+
+ ifneq ($(PLATFORM),CHIBIOS)
+ LTO_ENABLE = yes
+ endif
+ SPACE_CADET_ENABLE = no
+ GRAVE_ESC_ENABLE = no
+
+ ifneq ($(strip $(NO_SECRETS)), yes)
+ ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
+ SRC += secrets.c
+ endif
+ ifeq ($(strip $(NO_SECRETS)), lite)
+ OPT_DEFS += -DNO_SECRETS
+ endif
+ endif
+
+ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
+ SRC += tap_dances.c
+ endif
+
+ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
+ SRC += rgb_stuff.c
+ ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
+ OPT_DEFS += -DINDICATOR_LIGHTS
+ endif
+ ifeq ($(strip $(RGBLIGHT_TWINKLE)), yes)
+ OPT_DEFS += -DRGBLIGHT_TWINKLE
+ endif
+ ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes)
+ OPT_DEFS += -DRGBLIGHT_NOEEPROM
+ endif
+ ifeq ($(strip $(RGBLIGHT_STARTUP_ANIMATION)), yes)
+ OPT_DEFS += -DRGBLIGHT_STARTUP_ANIMATION
+ endif
+ endif
+
+ RGB_MATRIX_ENABLE ?= no
+ ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
+ SRC += rgb_matrix_stuff.c
+ endif
+
+
+ ifdef CONSOLE_ENABLE
+ ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
+ OPT_DEFS += -DKEYLOGGER_ENABLE
+ endif
+ endif
+
+ ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
+ OPT_DEFS += -DMAKE_BOOTLOADER
+ endif
+
+ # At least until build.mk or the like drops, this is here to prevent
+ # VUSB boards from enabling NKRO, as they do not support it. Ideally
+ # this should be handled per keyboard, but until that happens ...
+ ifeq ($(strip $(PROTOCOL)), VUSB)
+ NKRO_ENABLE = no
+ endif
+
+ ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
+ SRC += oled_stuff.c
+ endif
+endif
\ No newline at end of file