summaryrefslogtreecommitdiffstats
path: root/users/333fred
diff options
context:
space:
mode:
Diffstat (limited to 'users/333fred')
-rw-r--r--users/333fred/333fred.c38
-rw-r--r--users/333fred/333fred.h10
-rw-r--r--users/333fred/333fred_config.h1
-rw-r--r--users/333fred/layout_macros.h44
-rw-r--r--users/333fred/rgb.c16
5 files changed, 84 insertions, 25 deletions
diff --git a/users/333fred/333fred.c b/users/333fred/333fred.c
index 3b2b36d020..79df8c4dea 100644
--- a/users/333fred/333fred.c
+++ b/users/333fred/333fred.c
@@ -86,31 +86,37 @@ qk_tap_dance_action_t tap_dance_actions[] = {
[TD_COPY_PASTE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_copy_paste_finished, NULL)
};
-void tap_dance_process_record(uint16_t keycode) {
+void tap_dance_process_keycode(uint16_t keycode) {
if (tap_dance_state == SINGLE_TAP && keycode != TD(TD_SYM_VIM)) {
tap_dance_active = false;
}
}
__attribute__ ((weak))
-void matrix_init_rgb(void) {}
-
-__attribute__ ((weak))
void layer_state_set_rgb(uint32_t state) {}
-__attribute__ ((weak))
-void matrix_scan_user_keyboard(void) {}
-
-void matrix_scan_user() {
- static bool first_run = true;
- if (first_run) {
- first_run = false;
- matrix_init_rgb();
- }
- matrix_scan_user_keyboard();
-}
-
uint32_t layer_state_set_user(uint32_t state) {
layer_state_set_rgb(state);
return state;
}
+
+bool try_handle_macro(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode)
+ {
+ case DLEFT:
+ if (record->event.pressed)
+ SEND_STRING(SS_LGUI(SS_LALT(SS_TAP(X_LEFT))));
+ return true;
+ case DRIGHT:
+ if (record->event.pressed)
+ SEND_STRING(SS_LGUI(SS_LALT(SS_TAP(X_RIGHT))));
+ return true;
+ case PSCREEN_APP:
+ if (record->event.pressed)
+ SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)));
+ return true;
+
+ default:
+ return false;
+ }
+}
diff --git a/users/333fred/333fred.h b/users/333fred/333fred.h
index 0e6c6a196f..716b61a25c 100644
--- a/users/333fred/333fred.h
+++ b/users/333fred/333fred.h
@@ -1,6 +1,7 @@
#pragma once
#include "quantum.h"
+#include "layout_macros.h"
#define BASE 0
#define CODE 1 // code layer
@@ -17,6 +18,13 @@ enum tap_dance_declarations {
TD_COPY_PASTE,
};
+enum custom_keys {
+ DLEFT = SAFE_RANGE,
+ DRIGHT,
+ PSCREEN_APP
+};
+
void tap_dance_sym_vim_finished(qk_tap_dance_state_t*, void*);
void tap_dance_sym_vim_reset(qk_tap_dance_state_t*, void*);
-void tap_dance_process_record(uint16_t);
+void tap_dance_process_keycode(uint16_t);
+bool try_handle_macro(uint16_t keycode, keyrecord_t *record);
diff --git a/users/333fred/333fred_config.h b/users/333fred/333fred_config.h
index b158e2d5a2..c099072fc7 100644
--- a/users/333fred/333fred_config.h
+++ b/users/333fred/333fred_config.h
@@ -1,3 +1,4 @@
#pragma once
#define PERMISSIVE_HOLD
+#define NO_ACTION_MACRO
diff --git a/users/333fred/layout_macros.h b/users/333fred/layout_macros.h
new file mode 100644
index 0000000000..3b163f6ce7
--- /dev/null
+++ b/users/333fred/layout_macros.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#define SIX_TRNS _______, _______, _______, _______, _______, _______
+#define FOUR_TRNS _______, _______, _______, _______
+
+// Row 5: 6 keys
+#define ROW5_LEFT_BASE KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
+#define ROW5_RGHT_BASE KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
+#define ROW5_LEFT_SYMB _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
+#define ROW5_RGHT_SYMB KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11
+#define ROW5_LEFT_VIM SIX_TRNS
+#define ROW5_RGHT_VIM SIX_TRNS
+
+// Row 4: 6 keys
+#define ROW4_LEFT_BASE KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
+#define ROW4_RGHT_BASE KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
+#define ROW4_LEFT_SYMB _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE
+#define ROW4_RGHT_SYMB KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12
+#define ROW4_LEFT_VIM SIX_TRNS
+#define ROW4_RGHT_VIM SIX_TRNS
+
+// Row 3: 6 keys
+#define ROW3_LEFT_BASE CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G
+#define ROW3_RGHT_BASE KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
+#define ROW3_LEFT_SYMB _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV
+#define ROW3_RGHT_SYMB KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______
+#define ROW3_LEFT_VIM _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______
+#define ROW3_RGHT_VIM KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______
+
+// Row 2: 6 keys
+#define ROW2_LEFT_BASE OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B
+#define ROW2_RGHT_BASE KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT)
+#define ROW2_LEFT_SYMB _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD
+#define ROW2_RGHT_SYMB KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______
+#define ROW2_LEFT_VIM _______, _______, KC_TAB, _______, _______, _______
+#define ROW2_RGHT_VIM SIX_TRNS
+
+// Row 1: 4 keys
+#define ROW1_LEFT_BASE OSM(MOD_LCTL), KC_F4, KC_F5, KC_LALT
+#define ROW1_RGHT_BASE KC_DOWN, KC_EQL, KC_RIGHT, KC_RGUI
+#define ROW1_LEFT_SYMB _______, _______, _______, _______
+#define ROW1_RGHT_SYMB KC_0, KC_DOT, KC_EQL, _______
+#define ROW1_LEFT_VIM FOUR_TRNS
+#define ROW1_RGHT_VIM FOUR_TRNS
diff --git a/users/333fred/rgb.c b/users/333fred/rgb.c
index a3dfd905cc..c86cd1c77d 100644
--- a/users/333fred/rgb.c
+++ b/users/333fred/rgb.c
@@ -1,24 +1,19 @@
#include "quantum.h"
#include "333fred.h"
-void matrix_init_rgb(void) {
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(270, 255, 20);
-}
-
void layer_state_set_rgb(uint32_t state) {
switch (biton32(state)) {
case BASE:
// purple
- rgblight_sethsv_noeeprom(270, 255, 20);
+ rgblight_sethsv_noeeprom(210, 255, 20);
break;
case SYMB:
// blue
- rgblight_sethsv_noeeprom(240, 255, 20);
+ rgblight_sethsv_noeeprom(191, 255, 20);
break;
case VIM:
// green
- rgblight_sethsv_noeeprom(120, 255, 20);
+ rgblight_sethsv_noeeprom(85, 255, 20);
break;
case GAME:
// red
@@ -26,3 +21,8 @@ void layer_state_set_rgb(uint32_t state) {
break;
}
}
+
+void keyboard_post_init_user(void) {
+ rgblight_enable_noeeprom();
+ layer_state_set_rgb(1); // Set layer 0 (bit 1) on
+}