aboutsummaryrefslogtreecommitdiff
path: root/keyboards/crkbd/keymaps/blipson/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/crkbd/keymaps/blipson/keymap.c')
-rw-r--r--keyboards/crkbd/keymaps/blipson/keymap.c139
1 files changed, 139 insertions, 0 deletions
diff --git a/keyboards/crkbd/keymaps/blipson/keymap.c b/keyboards/crkbd/keymaps/blipson/keymap.c
new file mode 100644
index 000000000..23491e11a
--- /dev/null
+++ b/keyboards/crkbd/keymaps/blipson/keymap.c
@@ -0,0 +1,139 @@
1/*
2Copyright 2019 @foostan
3Copyright 2020 Ben Lipson <ben.j.lipson@gmail.com>
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#include QMK_KEYBOARD_H
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 [0] = LAYOUT_split_3x6_3(
23 //,-----------------------------------------------------. ,-----------------------------------------------------.
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
25 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
26 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
27 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
28 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
29 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
30 MO(1), KC_LGUI, KC_SPC, KC_SPC, KC_RALT, MO(2)
31 //`--------------------------' `--------------------------'
32
33 ),
34
35 [1] = LAYOUT_split_3x6_3(
36 //,-----------------------------------------------------. ,-----------------------------------------------------.
37 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_UP, KC_LPRN, KC_RPRN, KC_BSLS,
38 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
39 KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, KC_ENT,
40 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
41 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_END, KC_HOME, KC_PGDN, KC_PGUP, KC_RSFT,
42 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
43 _______, KC_LGUI, KC_SPC, KC_SPC, KC_RALT, MO(3)
44 //`--------------------------' `--------------------------'
45 ),
46
47 [2] = LAYOUT_split_3x6_3(
48 //,-----------------------------------------------------. ,-----------------------------------------------------.
49 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
50 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
51 KC_LCTL, KC_ASTR, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
52 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
53 KC_BSLS, KC_PIPE, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
54 //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
55 MO(3), KC_LGUI, KC_SPC, KC_SPC, KC_RALT, _______
56 //`--------------------------' `--------------------------'
57 ),
58
59 [3] = LAYOUT_split_3x6_3(
60 //,-------------------------------------------------------------------------------. ,------------------------------------------------------------------.
61 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET,
62 //|----------+------------+--------------+---------------+-----------+------------| |------------+------------+------------+--------+--------+---------|
63 KC_LCTL, A(KC_F12), A(G(KC_LEFT)), A(G(KC_RIGHT)), S(KC_F6), C(S(KC_D)), C(S(KC_R)), G(KC_LBRC), G(KC_RBRC), KC_F11, KC_F12, KC_MPLY,
64 //|----------+------------+--------------+---------------+-----------+------------| |------------+------------+------------+--------+--------+---------|
65 G(KC_F2), A(G(KC_F)), KC_MUTE, KC__VOLDOWN, KC__VOLUP, G(KC_GRV), C(G(KC_G)), KC_TAB, S(KC_TAB), KC_BRID, KC_BRIU, KC_CAPS,
66 //|----------+------------+--------------+---------------+-----------+------------+--------| |--------+------------+------------+------------+--------+--------+---------|
67 _______, KC_LGUI, KC_SPC, KC_SPC, KC_RALT, _______
68 //`----------------------------------' `-------------------------------'
69 )
70 };
71
72#ifdef OLED_ENABLE
73oled_rotation_t oled_init_user(oled_rotation_t rotation) {
74 if (!is_keyboard_left()) {
75 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
76 }
77 return rotation;
78}
79
80#define L_BASE 0
81#define L_LOWER 2
82#define L_RAISE 4
83#define L_ADJUST 8
84
85void oled_render_layer_state(void) {
86 oled_write_P(PSTR("Layer: "), false);
87 switch (layer_state) {
88 case L_BASE:
89 oled_write_ln_P(PSTR("Default"), false);
90 break;
91 case L_LOWER:
92 oled_write_ln_P(PSTR("Lower"), false);
93 break;
94 case L_RAISE:
95 oled_write_ln_P(PSTR("Raise"), false);
96 break;
97 case L_ADJUST:
98 case L_ADJUST|L_LOWER:
99 case L_ADJUST|L_RAISE:
100 case L_ADJUST|L_LOWER|L_RAISE:
101 oled_write_ln_P(PSTR("Adjust"), false);
102 break;
103 }
104 oled_write_P(PSTR("I love Marce"), false);
105}
106
107void render_bootmagic_status(bool status) {
108 /* Show Ctrl-Gui Swap options */
109 static const char PROGMEM logo[][2][3] = {
110 {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
111 {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
112 };
113 if (status) {
114 oled_write_ln_P(logo[0][0], false);
115 oled_write_ln_P(logo[0][1], false);
116 } else {
117 oled_write_ln_P(logo[1][0], false);
118 oled_write_ln_P(logo[1][1], false);
119 }
120}
121
122void oled_render_logo(void) {
123 static const char PROGMEM crkbd_logo[] = {
124 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
125 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
126 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
127 0};
128 oled_write_P(crkbd_logo, false);
129}
130
131void oled_task_user(void) {
132 if (is_keyboard_master()) {
133 oled_render_layer_state();
134 } else {
135 oled_render_logo();
136 }
137}
138
139#endif // OLED_ENABLE