summaryrefslogtreecommitdiffstats
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/xd60/keymaps/crd_ansi/README.md52
-rw-r--r--keyboards/xd60/keymaps/crd_ansi/keymap.c30
2 files changed, 82 insertions, 0 deletions
diff --git a/keyboards/xd60/keymaps/crd_ansi/README.md b/keyboards/xd60/keymaps/crd_ansi/README.md
new file mode 100644
index 000000000..80e455024
--- /dev/null
+++ b/keyboards/xd60/keymaps/crd_ansi/README.md
@@ -0,0 +1,52 @@
+# ANSI Layout
+
+This is the standard ANSI keymap that I use on all of my 60% boards. This keymap
+includes a single function layer available by holding the designated key on the
+bottom row.
+
+I don't ever use Caps Lock, so that keycode is not mapped anywhere. In place of
+the usual Caps Lock key, I have the following bnehaviour encoded: Escape when tapped
+and Control when held.
+
+I also have the bottom right mod cluster mapped to navigational direction keys when tapped.
+Shift = Up, Alt = Down, Ctrl = Right, Fn = Left. When held, these keys send the usual modifier
+signals.
+
+```
+/* Base layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
+ * |-----------------------------------------------------------------------------------------+
+ * | Esc/Ctrl| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | ? | Shift |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | Alt | Cmd | Space | Cmd | Fn | Alt | Ctrl |
+ * `-----------------------------------------------------------------------------------------'
+ */
+```
+
+While holding the function key, you have access to the following layout. Any key
+not indicated is considered "transparent" and sends the signal indicated in the
+layer below. This function later gets you dedicated access to Escape and Delete
+keys, function keys on numbers, WASD directions, other navigation, multimedia
+controls, RGB (underglow) controls, and firmware reset (DFU mode).
+
+```
+/* Fn layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Home| Up | End | | | | | Mute| | | Pg+ | Pg- | Reset |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Left| Down|Right| | | |Brt- |Vol- |Vol+ |Brt+ | | RGB Toggle |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | |R(Bt-)|R(Bt+)|R(Rot)| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+``` \ No newline at end of file
diff --git a/keyboards/xd60/keymaps/crd_ansi/keymap.c b/keyboards/xd60/keymaps/crd_ansi/keymap.c
new file mode 100644
index 000000000..6964ca315
--- /dev/null
+++ b/keyboards/xd60/keymaps/crd_ansi/keymap.c
@@ -0,0 +1,30 @@
+#include QMK_KEYBOARD_H
+
+enum keyboard_layers {
+ _BL = 0, // Base Layer
+ _FL // Function Layer
+};
+
+// Custom #defined keycodes (shorter macros for readability)
+#define KC_CTES CTL_T(KC_ESC)
+#define KC_RSUP RSFT_T(KC_UP)
+#define KC_FNLT LT(_FL, KC_LEFT)
+#define KC_RADN RALT_T(KC_DOWN)
+#define KC_RCRT RCTL_T(KC_RIGHT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BL] = LAYOUT_60_ansi(
+ 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_BSPC,
+ 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_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_FNLT, KC_RADN, KC_RCRT
+ ),
+ [_FL] = LAYOUT_60_ansi(
+ 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, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, RESET,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SLCK, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, RGB_MOD, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};