aboutsummaryrefslogtreecommitdiff
path: root/keyboards/hhkb/ansi/keymaps/xyverz/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/hhkb/ansi/keymaps/xyverz/keymap.c')
-rw-r--r--keyboards/hhkb/ansi/keymaps/xyverz/keymap.c137
1 files changed, 137 insertions, 0 deletions
diff --git a/keyboards/hhkb/ansi/keymaps/xyverz/keymap.c b/keyboards/hhkb/ansi/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..eebaede97
--- /dev/null
+++ b/keyboards/hhkb/ansi/keymaps/xyverz/keymap.c
@@ -0,0 +1,137 @@
1/*
2Xyverz's HHKB layout
3
4Rev 0.1, initial commit.
5
6This is my initial keymap for the HHKB with Hasu's alternate controller.
7The default layer is Dvorak, with Qwerty and Colemak being optional.
8Will probably add to it later, but for now I'm going to enjoy this as it is.
9*/
10
11#include QMK_KEYBOARD_H
12
13enum layer_names {
14 _QW,
15 _DV,
16 _CM,
17 _FL,
18};
19
20enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
21
22#define FN_TAB LT(_FL, KC_TAB)
23
24// clang-format off
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26
27 /*
28 * _QW: Qwerty Layer
29 * ,-----------------------------------------------------------.
30 * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ |Del|
31 * |-----------------------------------------------------------|
32 * |Fn/Tb| Q| W| E| R| T| Y| U| I| O| P| [| ]|BkSpc|
33 * |-----------------------------------------------------------|
34 * |Control| A| S| D| F| G| H| J| K| L| ;| '| Return|
35 * |-----------------------------------------------------------|
36 * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |Fn|
37 * |-----------------------------------------------------------|
38 * | |Alt |Gui | Space |Gui |Alt | |
39 * `-----------------------------------------------------------'
40 */
41 /* Layer 0: Qwerty */
42 [_QW] = LAYOUT(
43 KC_GESC, 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_DEL ,
44 FN_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,
45 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 ,
46 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),
47 KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
48 ),
49
50 /*
51 * _DV: Dvorak Layer
52 * ,-----------------------------------------------------------.
53 * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \ |Del|
54 * |-----------------------------------------------------------|
55 * |Fn/Tb| '| ,| .| P| Y| F| G| C| R| L| /| =|BkSpc|
56 * |-----------------------------------------------------------|
57 * |Control| A| O| E| U| I| D| H| T| N| S| -| Return|
58 * |-----------------------------------------------------------|
59 * |Shift | ;| Q| J| K| X| B| M| W| V| Z| Shift |Fn|
60 * |-----------------------------------------------------------|
61 * | |Alt |Gui | Space |Gui |Alt | |
62 * `-----------------------------------------------------------'
63 */
64 /* Layer 1: Dvorak */
65 [_DV] = LAYOUT(
66 KC_GESC, 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_DEL ,
67 FN_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,
68 KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT,
69 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(_FL),
70 KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
71 ),
72
73 /*
74 * _CM: Colemak Layer
75 * ,-----------------------------------------------------------.
76 * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ |Del|
77 * |-----------------------------------------------------------|
78 * |Fn/Tb| Q| W| F| P| G| J| L| U| Y| ;| [| ]|BkSpc|
79 * |-----------------------------------------------------------|
80 * |Control| A| R| S| T| D| H| N| E| I| O| '| Return|
81 * |-----------------------------------------------------------|
82 * |Shift | Z| X| C| V| B| K| M| ,| .| /| Shift |Fn|
83 * |-----------------------------------------------------------|
84 * | |Alt |Gui | Space |Gui |Alt | |
85 * `-----------------------------------------------------------'
86 */
87 /* Layer 2: Colemak */
88 [_CM] = LAYOUT(
89 KC_GESC, 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_DEL ,
90 FN_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,
91 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT,
92 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL),
93 KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
94 ),
95
96 /*
97 * _FL: Function Layer
98 * ,-----------------------------------------------------------.
99 * |Grv |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |RST|
100 * |-----------------------------------------------------------|
101 * | | |_QW|_DV|_CM| | |PgU| Up|PgD|PSc|SLk|Pau| |
102 * |-----------------------------------------------------------|
103 * | | |MPr|MPl|MNx| |Hom| Lt| Dn| Rt| | | |
104 * |-----------------------------------------------------------|
105 * |CAPS | |Mut|VlD|VlU| |End| | | | | | |
106 * |-----------------------------------------------------------|
107 * | | | | Ins | | | |
108 * `-----------------------------------------------------------'
109 */
110 /* Layer 3: Functions */
111 [_FL] = LAYOUT(
112 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, _______, RESET ,
113 _______, _______, QWERTY, DVORAK, COLEMAK, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______,
114 KC_CAPS, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
115 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_END, _______, _______, _______, _______, _______, _______,
116 _______, _______, _______, _______, _______
117 ),
118
119};
120// clang-format on
121
122bool process_record_user(uint16_t keycode, keyrecord_t *record) {
123 if (record->event.pressed) {
124 switch (keycode) {
125 case DVORAK:
126 set_single_persistent_default_layer(_DV);
127 return false;
128 case QWERTY:
129 set_single_persistent_default_layer(_QW);
130 return false;
131 case COLEMAK:
132 set_single_persistent_default_layer(_CM);
133 return false;
134 }
135 }
136 return true;
137} \ No newline at end of file