aboutsummaryrefslogtreecommitdiff
path: root/keyboards/clueboard/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/clueboard/keymaps')
-rw-r--r--keyboards/clueboard/keymaps/serubin/Makefile4
-rw-r--r--keyboards/clueboard/keymaps/serubin/keymap.c103
-rw-r--r--keyboards/clueboard/keymaps/serubin/layout-base.pngbin0 -> 38703 bytes
-rw-r--r--keyboards/clueboard/keymaps/serubin/layout-fn.pngbin0 -> 35216 bytes
-rw-r--r--keyboards/clueboard/keymaps/serubin/layout-media.pngbin0 -> 28944 bytes
-rw-r--r--keyboards/clueboard/keymaps/serubin/readme.md23
-rw-r--r--keyboards/clueboard/keymaps/shift_fn/keymap.c6
-rw-r--r--keyboards/clueboard/keymaps/skully/keymap.c35
-rw-r--r--keyboards/clueboard/keymaps/smt/keymap.c181
-rw-r--r--keyboards/clueboard/keymaps/smt/layout.pngbin0 -> 130672 bytes
-rw-r--r--keyboards/clueboard/keymaps/smt/readme.md30
11 files changed, 363 insertions, 19 deletions
diff --git a/keyboards/clueboard/keymaps/serubin/Makefile b/keyboards/clueboard/keymaps/serubin/Makefile
new file mode 100644
index 000000000..ba997f869
--- /dev/null
+++ b/keyboards/clueboard/keymaps/serubin/Makefile
@@ -0,0 +1,4 @@
1
2MOUSEKEY_ENABLE = yes
3EXTRAKEY_ENABLE = yes
4
diff --git a/keyboards/clueboard/keymaps/serubin/keymap.c b/keyboards/clueboard/keymaps/serubin/keymap.c
new file mode 100644
index 000000000..18446eb31
--- /dev/null
+++ b/keyboards/clueboard/keymaps/serubin/keymap.c
@@ -0,0 +1,103 @@
1#include "clueboard.h"
2
3// Helpful defines
4#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
5#define _______ KC_TRNS
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13#define _ME 2
14#define _CL 3
15
16const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
17 /* Keymap _BL: Base Layer (Default Layer)
18 */
19[_BL] = KEYMAP(
20 KC_GRV, 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_GRV, KC_BSPC, KC_PGUP, \
21 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_PGDN, \
22 F(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \
23 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \
24 KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RGUI, MO(_FL), MO(_ME), KC_LEFT, KC_DOWN, KC_RGHT),
25
26 /* Keymap _FL: Function Layer
27 */
28[_FL] = KEYMAP(
29 KC_ESC, 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_HOME, \
30 _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, KC_PSCR, KC_END, \
31 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
32 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \
33 _______, _______, _______, _______, _______,_______, _______, _______, MO(_FL), MO(_ME), KC_HOME, KC_PGDN, KC_END),
34
35/* Keymap _FL: Function Layer
36 */
37[_ME] = KEYMAP(
38 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \
39 _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, _______, KC_VOLD, \
40 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
41 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______ , _______, _______, \
42 _______, _______, _______, _______, _______,_______, _______, _______, MO(_FL), MO(_ME), KC_MPRV, KC_MPLY, KC_MNXT),
43
44
45 /* Keymap _CL: Control layer
46 */
47[_CL] = KEYMAP(
48 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \
49 _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \
50 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
51 MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, MO(_FL), _______, RGB_SAI, \
52 _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI),
53};
54
55/* This is a list of user defined functions. F(N) corresponds to item N
56 of this list.
57 */
58const uint16_t PROGMEM fn_actions[] = {
59 [0] = ACTION_FUNCTION(0), // Calls action_function()
60 [1] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC),
61};
62
63void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
64 static uint8_t mods_pressed;
65 static bool mod_flag;
66
67 switch (id) {
68 case 0:
69 /* Handle the combined Grave/Esc key
70 */
71 mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
72
73 if (record->event.pressed) {
74 /* The key is being pressed.
75 */
76 if (mods_pressed) {
77 mod_flag = true;
78 add_key(KC_GRV);
79 send_keyboard_report();
80 } else {
81 add_key(KC_ESC);
82 send_keyboard_report();
83 }
84 } else {
85 /* The key is being released.
86 */
87 if (mod_flag) {
88 mod_flag = false;
89 del_key(KC_GRV);
90 send_keyboard_report();
91 } else {
92 del_key(KC_ESC);
93 send_keyboard_report();
94 }
95 }
96 break;
97 case 1:
98 if(record->event.pressed) {
99 del_key(KC_ESC);
100 }
101 break;
102 }
103}
diff --git a/keyboards/clueboard/keymaps/serubin/layout-base.png b/keyboards/clueboard/keymaps/serubin/layout-base.png
new file mode 100644
index 000000000..8dcdc0643
--- /dev/null
+++ b/keyboards/clueboard/keymaps/serubin/layout-base.png
Binary files differ
diff --git a/keyboards/clueboard/keymaps/serubin/layout-fn.png b/keyboards/clueboard/keymaps/serubin/layout-fn.png
new file mode 100644
index 000000000..3cff46a72
--- /dev/null
+++ b/keyboards/clueboard/keymaps/serubin/layout-fn.png
Binary files differ
diff --git a/keyboards/clueboard/keymaps/serubin/layout-media.png b/keyboards/clueboard/keymaps/serubin/layout-media.png
new file mode 100644
index 000000000..753cb64fa
--- /dev/null
+++ b/keyboards/clueboard/keymaps/serubin/layout-media.png
Binary files differ
diff --git a/keyboards/clueboard/keymaps/serubin/readme.md b/keyboards/clueboard/keymaps/serubin/readme.md
new file mode 100644
index 000000000..e39adbb16
--- /dev/null
+++ b/keyboards/clueboard/keymaps/serubin/readme.md
@@ -0,0 +1,23 @@
1```
2 ___ _____ _ _ _ __ __ _ __
3|__ \ / ____| | | | | | / / / /(_) / /
4 ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / /
5 |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / /
6 |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _
7 (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_)
8```
9
10# Serubin's Clueboard Layout
11
12This is the layout based on the clueboard default, modified for development on Mac, PC, and Windows. This layout also handles media and volume keys on all the previously listed platforms. Most importantly, Capslock has been replaced by a dual function Esc/Ctrl key. This is particularly handy for use in Vim.
13
14#### Base Layer
15![Base Layout Image](layout-base.png)
16
17#### Fn Layer
18![Fn Layout Image](layout-fn.png)
19
20#### Media Layer
21![Media Layer Image](layout-media.png)
22
23
diff --git a/keyboards/clueboard/keymaps/shift_fn/keymap.c b/keyboards/clueboard/keymaps/shift_fn/keymap.c
index c4fae0369..fdec37a54 100644
--- a/keyboards/clueboard/keymaps/shift_fn/keymap.c
+++ b/keyboards/clueboard/keymaps/shift_fn/keymap.c
@@ -19,8 +19,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 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_GRV, KC_BSPC, KC_PGUP, \ 19 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_GRV, KC_BSPC, KC_PGUP, \
20 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_PGDN, \ 20 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_PGDN, \
21 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ 21 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \
22 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ 22 MO(_FL), KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \
23 KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), 23 KC_LCTL, KC_LGUI, KC_LALT,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
24 24
25 /* Keymap _FL: Function Layer 25 /* Keymap _FL: Function Layer
26 */ 26 */
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 S(KC_TAB), S(KC_Q), S(KC_W),S(KC_E),S(KC_R),S(KC_T), S(KC_Y), S(KC_U),S(KC_I),S(KC_O), S(KC_P), S(KC_LBRC),S(KC_RBRC),S(KC_BSLS), S(KC_PGDN), \ 29 S(KC_TAB), S(KC_Q), S(KC_W),S(KC_E),S(KC_R),S(KC_T), S(KC_Y), S(KC_U),S(KC_I),S(KC_O), S(KC_P), S(KC_LBRC),S(KC_RBRC),S(KC_BSLS), S(KC_PGDN), \
30 S(KC_LCTL),S(KC_A), MO(_CL),S(KC_D),S(KC_F),S(KC_G), S(KC_H), S(KC_J),S(KC_K),S(KC_L), S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT), \ 30 S(KC_LCTL),S(KC_A), MO(_CL),S(KC_D),S(KC_F),S(KC_G), S(KC_H), S(KC_J),S(KC_K),S(KC_L), S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT), \
31 MO(_FL), S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V), S(KC_B), S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO), KC_RSFT, KC_PGUP, \ 31 MO(_FL), S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V), S(KC_B), S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO), KC_RSFT, KC_PGUP, \
32 KC_LCTL, KC_LALT, KC_LGUI,MO(_FL), S(KC_SPC),S(KC_SPC), MO(_FL), KC_RGUI, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END), 32 KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, S(KC_SPC),S(KC_SPC), KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END),
33 33
34 /* Keymap _CL: Control layer 34 /* Keymap _CL: Control layer
35 */ 35 */
diff --git a/keyboards/clueboard/keymaps/skully/keymap.c b/keyboards/clueboard/keymaps/skully/keymap.c
index 077d214fa..df7757a92 100644
--- a/keyboards/clueboard/keymaps/skully/keymap.c
+++ b/keyboards/clueboard/keymaps/skully/keymap.c
@@ -16,33 +16,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16 /* Keymap _BL: Base Layer (Default Layer) 16 /* Keymap _BL: Base Layer (Default Layer)
17 */ 17 */
18[_BL] = KEYMAP( 18[_BL] = KEYMAP(
19 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_GRV, KC_BSPC, KC_PGUP, \ 19 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_GRV, KC_BSPC, KC_PGUP, \
20 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_PGDN, \ 20 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_PGDN, \
21 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_NUHS, KC_ENT, \ 21 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_NUHS, KC_ENT, \
22 KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ 22 MO(_FL), KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \
23 KC_LCTL,KC_LALT,KC_LGUI,MO(_FL), KC_SPC, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), 23 KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
24 24
25 /* Keymap _FL: Function Layer 25 /* Keymap _FL: Function Layer
26 */ 26 */
27[_FL] = KEYMAP( 27[_FL] = KEYMAP(
28 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, BL_STEP, \ 28 S(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, S(KC_GRV), KC_DEL, BL_STEP, \
29 _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______, \ 29 S(KC_TAB), S(KC_Q), S(KC_W),S(KC_E),S(KC_R),S(KC_T), S(KC_Y), S(KC_U),S(KC_I),S(KC_O), S(KC_P), S(KC_LBRC),S(KC_RBRC),S(KC_BSLS), S(KC_PGDN), \
30 _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ 30 S(KC_LCTL),S(KC_A), MO(_CL),S(KC_D),S(KC_F),S(KC_G), S(KC_H), S(KC_J),S(KC_K),S(KC_L), S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT), \
31 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_PGUP, \ 31 MO(_FL), S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V), S(KC_B), S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO), KC_RSFT, KC_PGUP, \
32 _______,_______,_______,MO(_FL), _______,_______, MO(_FL),_______,_______,MO(_FL),KC_HOME,KC_PGDN,KC_END), 32 KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, S(KC_SPC),S(KC_SPC), KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END),
33 33
34 /* Keymap _CL: Control layer 34 /* Keymap _CL: Control layer
35 */ 35 */
36[_CL] = KEYMAP( 36[_CL] = KEYMAP(
37 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 37 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \
38 _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 38 _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \
39 _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ 39 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
40 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 40 MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \
41 _______,_______,_______,_______, _______,_______, _______,_______,_______,MO(_FL),_______, _______, _______), 41 _______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD,RGB_SAD,RGB_HUI),
42}; 42};
43 43
44/* This is a list of user defined functions. F(N) corresponds to item N
45 of this list.
46 */
44const uint16_t PROGMEM fn_actions[] = { 47const uint16_t PROGMEM fn_actions[] = {
45 [0] = ACTION_FUNCTION(0), 48 [0] = ACTION_FUNCTION(0), // Calls action_function()
46}; 49};
47 50
48void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { 51void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
diff --git a/keyboards/clueboard/keymaps/smt/keymap.c b/keyboards/clueboard/keymaps/smt/keymap.c
new file mode 100644
index 000000000..732086fb5
--- /dev/null
+++ b/keyboards/clueboard/keymaps/smt/keymap.c
@@ -0,0 +1,181 @@
1#include "clueboard.h"
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7#define _QWERTY 0
8#define _COLEMAK 1
9#define _DVORAK 2
10#define _FL 3
11#define _CL 4
12
13enum planck_keycodes {
14 QWERTY = SAFE_RANGE,
15 COLEMAK,
16 DVORAK
17};
18
19// Helpful defines
20#define _______ KC_TRNS
21#define XXXXXXX KC_NO
22#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
23
24// Custom macros
25#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
26#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt)
27#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
28
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 /* Keymap _QWERTY: Base Layer (Default Layer)
32 * ,-----------------------------------------------------------. ,---.
33 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| |PgU|
34 * |-----------------------------------------------------------| |---|
35 * |HpTab| Q| W| E| R| T| Y| U| I| O| P| [| ]| BS| |PgD|
36 * |-----------------------------------------------------------| `---'
37 * |CtlEsc| A| S| D| F| G| H| J| K| L| ;| '| | Ent|
38 * |--------------------------------------------------------------.
39 * |Shift| | Z| X| C| V| B| N| M| ,| .| /|Shift| Fn| Up|
40 * |------------------------------------------------------------------.
41 * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
42 * `------------------------------------------------------------------'
43 */
44[_QWERTY] = KEYMAP(
45 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, KC_PGUP, \
46 HPR_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, KC_PGDN, \
47 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \
48 KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, MO(_FL), KC_UP, \
49 KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC,KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
50
51 /* Keymap _COLEMAK: Base Layer
52 * ,-----------------------------------------------------------. ,---.
53 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| |PgU|
54 * |-----------------------------------------------------------| |---|
55 * |HpTab| Q| W| F| P| G| J| L| U| Y| ;| [| ]| BS| |PgD|
56 * |-----------------------------------------------------------| `---'
57 * |CtlEsc| A| R| S| T| D| H| N| E| I| O| '| | Ent|
58 * |--------------------------------------------------------------.
59 * |Shift| | Z| X| C| V| B| K| M| ,| .| /|Shift| Fn| Up|
60 * |------------------------------------------------------------------.
61 * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
62 * `------------------------------------------------------------------'
63 */
64[_COLEMAK] = KEYMAP(
65 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, KC_PGUP, \
66 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGDN, \
67 CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, XXXXXXX, KC_ENT, \
68 KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, MO(_FL), KC_UP, \
69 KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC,KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
70
71 /* Keymap _DVORAK: Base Layer
72 * ,-----------------------------------------------------------. ,---.
73 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| `| |PgU|
74 * |-----------------------------------------------------------| |---|
75 * |HpTab| '| ,| .| P| Y| F| G| C| R| L| /| =| BS| |PgD|
76 * |-----------------------------------------------------------| `---'
77 * |CtlEsc| A| O| E| U| I| D| H| T| N| S| -| | Ent|
78 * |--------------------------------------------------------------.
79 * |Shift| | ;| Q| J| K| X| B| M| W| V| Z|Shift| Fn| Up|
80 * |------------------------------------------------------------------.
81 * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
82 * `------------------------------------------------------------------'
83 */
84[_DVORAK] = KEYMAP(
85 F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, KC_PGUP, \
86 HPR_TAB, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, KC_PGDN, \
87 CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, XXXXXXX, KC_ENT, \
88 KC_LSFT, XXXXXXX, KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, MO(_FL), KC_UP, \
89 KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC,KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
90
91 /* Keymap _FL: Function Layer
92 */
93[_FL] = KEYMAP(
94 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, _______, _______, BL_STEP, \
95 _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, KC_DEL, _______, \
96 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
97 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), KC_PGUP, \
98 _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
99
100 /* Keymap _CL: Control layer
101 */
102[_CL] = KEYMAP(
103 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \
104 _______, _______, _______,_______,RESET, _______,_______,QWERTY, COLEMAK,DVORAK, _______, _______, _______, _______, RGB_VAD, \
105 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
106 MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \
107 _______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI),
108};
109
110/* This is a list of user defined functions. F(N) corresponds to item N
111 of this list.
112 */
113const uint16_t PROGMEM fn_actions[] = {
114 [0] = ACTION_FUNCTION(0), // Calls action_function()
115};
116
117void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
118 static uint8_t mods_pressed;
119 static bool mod_flag;
120
121 switch (id) {
122 case 0:
123 /* Handle the combined Grave/Esc key
124 */
125 mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
126
127 if (record->event.pressed) {
128 /* The key is being pressed.
129 */
130 if (mods_pressed) {
131 mod_flag = true;
132 add_key(KC_GRV);
133 send_keyboard_report();
134 } else {
135 add_key(KC_ESC);
136 send_keyboard_report();
137 }
138 } else {
139 /* The key is being released.
140 */
141 if (mod_flag) {
142 mod_flag = false;
143 del_key(KC_GRV);
144 send_keyboard_report();
145 } else {
146 del_key(KC_ESC);
147 send_keyboard_report();
148 }
149 }
150 break;
151 }
152}
153
154void persistant_default_layer_set(uint16_t default_layer) {
155 eeconfig_update_default_layer(default_layer);
156 default_layer_set(default_layer);
157}
158
159bool process_record_user(uint16_t keycode, keyrecord_t *record) {
160 switch (keycode) {
161 case QWERTY:
162 if (record->event.pressed) {
163 persistant_default_layer_set(1UL<<_QWERTY);
164 }
165 return false;
166 break;
167 case COLEMAK:
168 if (record->event.pressed) {
169 persistant_default_layer_set(1UL<<_COLEMAK);
170 }
171 return false;
172 break;
173 case DVORAK:
174 if (record->event.pressed) {
175 persistant_default_layer_set(1UL<<_DVORAK);
176 }
177 return false;
178 break;
179 }
180 return true;
181} \ No newline at end of file
diff --git a/keyboards/clueboard/keymaps/smt/layout.png b/keyboards/clueboard/keymaps/smt/layout.png
new file mode 100644
index 000000000..6c27277a9
--- /dev/null
+++ b/keyboards/clueboard/keymaps/smt/layout.png
Binary files differ
diff --git a/keyboards/clueboard/keymaps/smt/readme.md b/keyboards/clueboard/keymaps/smt/readme.md
new file mode 100644
index 000000000..6a8b3edb4
--- /dev/null
+++ b/keyboards/clueboard/keymaps/smt/readme.md
@@ -0,0 +1,30 @@
1```
2 ___ _____ _ _ _ __ __ _ __
3|__ \ / ____| | | | | | / / / /(_) / /
4 ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / /
5 |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / /
6 |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _
7 (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_)
8```
9
10# smt Clueboard Layout (HHKB variant)
11
12![Clueboard Layout Image](layout.png)
13
14This is smt's HHKB variant layout, based on the default layout that comes
15flashed on every Clueboard. The primary differences from the default are:
16
17- The Backspace key is moved down into the traditional `\` position
18- `\` and `` ` `` are assigned to the "split-backspace" positions
19- The right Shift is split to allow for a Fn key to its right
20- The modifiers on the right side now mirror the left side (`Alt`/`Super`/`Ctrl`)
21
22For the most part, it's a straightforward and easy to follow layout. There
23are a few special keys:
24
25- The Esc key sends `Esc` when tapped, `` ` `` when `Alt`/`Super`/`Ctrl`/`Fn` is held, or `~` when `Shift` is held
26- The Tab key sends `Tab` when tapped, or `Super+Ctrl+Alt+Shift` (a.k.a. [Hyper]) when held
27- The key traditionally in the Caps-Lock position has been re-mapped to send `Esc` when tapped, or `Ctrl` when held
28- The left Shift key sends `Enter` when tapped, or `Shift` when held
29
30[Hyper]: http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/