aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/satan/keymaps/sethbc/keymap.c149
-rw-r--r--keyboards/satan/satan.h40
2 files changed, 184 insertions, 5 deletions
diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c
new file mode 100644
index 000000000..0ea4a7ae4
--- /dev/null
+++ b/keyboards/satan/keymaps/sethbc/keymap.c
@@ -0,0 +1,149 @@
1#include "satan.h"
2
3#ifdef RGBLIGHT_ENABLE
4#include "rgblight.h"
5#endif
6
7// Used for SHIFT_ESC
8#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
9
10// Each layer gets a name for readability, which is then used in the keymap matrix below.
11// The underscores don't mean anything - you can have a layer called STUFF or any other name.
12// Layer names don't all need to be of the same length, obviously, and you can also skip them
13// entirely and just use numbers.
14#define _BL 0
15#define _FL 1
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 /* Keymap _BL: (Base Layer) Default Layer
19 * ,-----------------------------------------------------------.
20 * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
21 * |-----------------------------------------------------------|
22 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|bksp |
23 * |-----------------------------------------------------------|
24 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
25 * |-----------------------------------------------------------|
26 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift| fn |
27 * |-----------------------------------------------------------|
28 * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
29 * `-----------------------------------------------------------'
30 */
31[_BL] = KEYMAP_HHKB(
32 F(0), 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_BSLS, KC_GRV, \
33 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_BSPC, \
34 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), \
36 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL),
37
38[_FL] = KEYMAP_HHKB(
39 #ifdef RGBLIGHT_ENABLE
40 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_TRNS, RESET, \
41 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \
42 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
45 #else
46 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_TRNS, RESET, \
47 KC_CAPS, KC_TRNS, F(1), F(2), F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \
48 KC_TRNS, KC_VOLD, F(4), F(5), F(6), KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
49 KC_TRNS, F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
51 #endif
52};
53
54enum function_id {
55 SHIFT_ESC,
56 #ifdef RGBLIGHT_ENABLE
57 RGBLED_TOGGLE,
58 RGBLED_STEP_MODE,
59 RGBLED_INCREASE_HUE,
60 RGBLED_DECREASE_HUE,
61 RGBLED_INCREASE_SAT,
62 RGBLED_DECREASE_SAT,
63 RGBLED_INCREASE_VAL,
64 RGBLED_DECREASE_VAL
65 #endif
66};
67
68const uint16_t PROGMEM fn_actions[] = {
69 [0] = ACTION_FUNCTION(SHIFT_ESC),
70 #ifdef RGBLIGHT_ENABLE
71 [1] = ACTION_FUNCTION(RGBLED_TOGGLE),
72 [2] = ACTION_FUNCTION(RGBLED_STEP_MODE),
73 [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
74 [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
75 [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
76 [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
77 [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
78 [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
79 #endif
80};
81
82void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
83 static uint8_t shift_esc_shift_mask;
84 switch (id) {
85 case SHIFT_ESC:
86 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
87 if (record->event.pressed) {
88 if (shift_esc_shift_mask) {
89 add_key(KC_GRV);
90 send_keyboard_report();
91 } else {
92 add_key(KC_ESC);
93 send_keyboard_report();
94 }
95 } else {
96 if (shift_esc_shift_mask) {
97 del_key(KC_GRV);
98 send_keyboard_report();
99 } else {
100 del_key(KC_ESC);
101 send_keyboard_report();
102 }
103 }
104 break;
105 //led operations
106 #ifdef RGBLIGHT_ENABLE
107 case RGBLED_TOGGLE:
108 if (record->event.pressed) {
109 rgblight_toggle();
110 }
111 break;
112 case RGBLED_INCREASE_HUE:
113 if (record->event.pressed) {
114 rgblight_increase_hue();
115 }
116 break;
117 case RGBLED_DECREASE_HUE:
118 if (record->event.pressed) {
119 rgblight_decrease_hue();
120 }
121 break;
122 case RGBLED_INCREASE_SAT:
123 if (record->event.pressed) {
124 rgblight_increase_sat();
125 }
126 break;
127 case RGBLED_DECREASE_SAT:
128 if (record->event.pressed) {
129 rgblight_decrease_sat();
130 }
131 break;
132 case RGBLED_INCREASE_VAL:
133 if (record->event.pressed) {
134 rgblight_increase_val();
135 }
136 break;
137 case RGBLED_DECREASE_VAL:
138 if (record->event.pressed) {
139 rgblight_decrease_val();
140 }
141 break;
142 case RGBLED_STEP_MODE:
143 if (record->event.pressed) {
144 rgblight_step();
145 }
146 break;
147 #endif
148 }
149}
diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h
index 67a48515e..fa1711915 100644
--- a/keyboards/satan/satan.h
+++ b/keyboards/satan/satan.h
@@ -26,13 +26,43 @@
26 k40, k41, k42, k45, k4a, k4b, k4c, k4d \ 26 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
27) \ 27) \
28{ \ 28{ \
29 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ 29 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
30 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ 30 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
31 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \ 31 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \
32 {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \ 32 {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \
33 {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d} \ 33 {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d} \
34} 34}
35 35
36/* Satan HHKB matrix layout
37 * ,------------------------------------------------------------.
38 * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
39 * |------------------------------------------------------------|
40 * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
41 * |------------------------------------------------------------|
42 * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
43 * |------------------------------------------------------------|
44 * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
45 * |------------------------------------------------------------|
46 * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
47 * `------------------------------------------------------------'
48 */
49
50#define KEYMAP_HHKB( \
51 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
52 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
53 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
54 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
55 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
56) \
57{ \
58 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
59 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
60 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \
61 {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
62 {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, k49, k4a, k4b, k4c, k4d} \
63}
64
65
36void matrix_init_user(void); 66void matrix_init_user(void);
37void matrix_scan_user(void); 67void matrix_scan_user(void);
38 68