~ruther/qmk_firmware

ff8b1b9c6916a0817189a1c3079e8f2e09fc04b3 — Jason Thigpen 6 years ago af84f0f
Add crd's XD60 ANSI keymap (#4702)

2 files changed, 82 insertions(+), 0 deletions(-)

A keyboards/xd60/keymaps/crd_ansi/README.md
A keyboards/xd60/keymaps/crd_ansi/keymap.c
A keyboards/xd60/keymaps/crd_ansi/README.md => keyboards/xd60/keymaps/crd_ansi/README.md +52 -0
@@ 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

A keyboards/xd60/keymaps/crd_ansi/keymap.c => keyboards/xd60/keymaps/crd_ansi/keymap.c +30 -0
@@ 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, _______,
		_______, _______,          _______,                   _______,                            _______, _______, _______, _______
	)
};