summaryrefslogtreecommitdiff
path: root/keyboards/kinesis/keymaps
diff options
context:
space:
mode:
authorXyverz <xyverz@gmail.com>2017-02-15 22:54:52 -0800
committerXyverz <xyverz@gmail.com>2017-02-15 22:54:52 -0800
commit80d5649f25f7cdd7596eb453576dca9eb680a5cd (patch)
treeb07eba55821d808de447ab67b1c61c1dc7e16aa2 /keyboards/kinesis/keymaps
parent1dabceb19782f5856afe66a499020699604b2319 (diff)
More refinements to my Kinesis keymap. Added a readme.md file.
Diffstat (limited to 'keyboards/kinesis/keymaps')
-rw-r--r--keyboards/kinesis/keymaps/xyverz/keymap.c195
-rw-r--r--keyboards/kinesis/keymaps/xyverz/readme.md131
2 files changed, 270 insertions, 56 deletions
diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c
index fb2d3bc06c..b8e06fe305 100644
--- a/keyboards/kinesis/keymaps/xyverz/keymap.c
+++ b/keyboards/kinesis/keymaps/xyverz/keymap.c
@@ -7,8 +7,8 @@ extern keymap_config_t keymap_config;
#define _DV 0 // Dvorak layer
#define _QW 1 // Qwerty layer
#define _CM 2 // Colemak layer
-#define _LO 3 // Media Layer
-#define _RA 4 // Keypad Layer
+#define _MD 3 // Media Layer
+#define _KP 4 // Keypad Layer
// Macro name shortcuts
#define DVORAK M(_DV)
@@ -23,30 +23,115 @@ extern keymap_config_t keymap_config;
#define _______ KC_TRNS
#define XXXXXXX KC_NO
-/****************************************************************************************************
-*
-* Keymap: Default Layer in Qwerty
-*
-* ,-------------------------------------------------------------------------------------------------------------------.
-* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT |
-* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
-* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
-* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
-* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
-* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
-* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" |
-* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
-* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift |
-* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
-* | `~ | INS | Left | Right| | Up | Down | [{ | ]} |
-* `---------------------------' `---------------------------'
-* ,-------------. ,-------------.
-* | Ctrl | Alt | | Gui | Ctrl |
-* ,------|------|------| |------+------+------.
-* | | | Home | | PgUp | | |
-* | BkSp | Del |------| |------|Return| Space|
-* | | | End | | PgDn | | |
-* `--------------------' `--------------------'
+/*
+
+ Function Keys on All Layers (Keypad toggles):
+ ,-----------------------------------------------------------------.
+ | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 |
+ `-----------------------------------------------------------------'
+ ,-----------------------------------------------------------------.
+ | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET |
+ `-----------------------------------------------------------------'
+
+ Dvorak layer:
+ ,-------------------------------------------.,-------------------------------------------.
+ | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Tab | ' | , | . | P | Y || F | G | C | R | L | \ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | CapsLk | A | O | E | U | I || D | H | T | N | S | - |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | ` | INS | Left | Rght | | Up | Dn | / | = |
+ `---------------------------' `---------------------------'
+ ,--------------.,--------------.
+ |Ctr/ESC| LAlt || RGUI |Ctr/ESC|
+ ,------|-------|------||------+-------+-------.
+ | | Del | Home || PgUp | Enter | |
+ | BkSp | / |------||------| / | Space |
+ | | Media | End || PgDn | KeyPd | |
+ `---------------------'`----------------------'
+
+ QWERTY layer:
+ ,-------------------------------------------.,-------------------------------------------.
+ | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Tab | Q | W | E | R | T || Y | U | I | O | P | \ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | CapsLk | A | S | D | F | G || H | J | K | L | ; | ' |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | B || N | M | , | . | / | RShift |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | ` | INS | Left | Rght | | Up | Dn | [ | ] |
+ `---------------------------' `---------------------------'
+ ,--------------.,--------------.
+ |Ctr/ESC| LAlt || RGUI |Ctr/ESC|
+ ,------|-------|------||------+-------+-------.
+ | | Del | Home || PgUp | Enter | |
+ | BkSp | / |------||------| / | Space |
+ | | Media | End || PgDn | KeyPd | |
+ `---------------------'`----------------------'
+
+ Colemak layer:
+ ,-------------------------------------------.,-------------------------------------------.
+ | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Tab | Q | W | F | P | G || J | L | U | Y | ; | \ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | BkSpc | A | R | S | T | D || H | N | E | I | O | ' |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | B || K | M | , | . | / | RShift |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | ` | INS | Left | Rght | | Up | Dn | [ | ] |
+ `---------------------------' `---------------------------'
+ ,--------------.,--------------.
+ |Ctr/ESC| LAlt || RGUI |Ctr/ESC|
+ ,------|-------|------||------+-------+-------.
+ | | Del | Home || PgUp | Enter | |
+ | BkSp | / |------||------| / | Space |
+ | | Media | End || PgDn | KeyPd | |
+ `---------------------'`----------------------'
+
+ Media layer:
+ ,-------------------------------------------.,-------------------------------------------.
+ | F11 | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F12 |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | | | | | || | | | | | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | | | | | || | Mute | Vol- | Vol+ | | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | | | | | || Stop | Prev | Play | Next | Sel | |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | | | | | | | | | |
+ `---------------------------' `---------------------------'
+ ,-------------.,-------------.
+ | | || | |
+ ,------|------|------||------+------+------.
+ | | | || | | |
+ | | |------||------| | |
+ | | | || | | |
+ `--------------------'`--------------------'
+
+ Keypad layer:
+ ,-------------------------------------------.,-------------------------------------------.
+ | Power | | | | | || | NmLk | KP = | KP / | KP * | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Sleep | | | | | || | KP 7 | KP 8 | KP 9 | KP - | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Wake | | | | | || | KP 4 | KP 5 | KP 6 | KP + | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | |QWERTY|Colemk|Dvorak| || | KP 1 | KP 2 | KP 3 |KP Ent| |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | | | | | | | | KP . |KP Ent| |
+ `---------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | | || | |
+ ,------|------|------||------+------+------.
+ | | | || | | |
+ | | |------||------| | KP 0 |
+ | | | || | | |
+ `--------------------'`--------------------'
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -62,10 +147,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Left Thumb
CTL_T(KC_ESC), KC_LALT,
KC_HOME,
- KC_BSPC, LT(_LO, KC_DEL), KC_END,
+ KC_BSPC, LT(_MD, KC_DEL), KC_END,
// Right Hand
- KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA),
+ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), RESET,
KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,
KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
@@ -74,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Right Thumb
KC_RGUI, CTL_T(KC_ESC),
KC_PGUP,
- KC_PGDN, LT(_RA, KC_ENT), KC_SPC
+ KC_PGDN, LT(_KP, KC_ENT), KC_SPC
),
[_QW] = KEYMAP(
@@ -86,21 +171,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
// Left Thumb
- KC_LCTL, KC_LALT,
+ CTL_T(KC_ESC), KC_LALT,
KC_HOME,
- KC_BSPC, LT(_LO, KC_DEL), KC_END,
+ KC_BSPC, LT(_MD, KC_DEL), KC_END,
// Right Hand
- KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA),
+ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), RESET,
KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL ,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_UP, KC_DOWN, KC_LBRC, KC_RBRC,
// Right Thumb
- KC_RGUI, KC_RCTL,
+ KC_RGUI, CTL_T(KC_ESC),
KC_PGUP,
- KC_PGDN, LT(_RA, KC_ENT), KC_SPC
+ KC_PGDN, LT(_KP, KC_ENT), KC_SPC
),
[_CM] = KEYMAP(
@@ -112,30 +197,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
// Left Thumb
- KC_LCTL, KC_LALT,
+ CTL_T(KC_ESC), KC_LALT,
KC_HOME,
- KC_BSPC, LT(_LO, KC_DEL), KC_END,
+ KC_BSPC, LT(_MD, KC_DEL), KC_END,
// Right Hand
- KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA),
+ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), RESET,
KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_UP, KC_DOWN, KC_LBRC, KC_RBRC,
// Right Thumb
- KC_RGUI, KC_RCTL,
+ KC_RGUI, CTL_T(KC_ESC),
KC_PGUP,
- KC_PGDN, LT(_RA, KC_ENT), KC_SPC
+ KC_PGDN, LT(_KP, KC_ENT), KC_SPC
),
-[_LO] = KEYMAP(
+[_MD] = KEYMAP(
// Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
- _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______,
- _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
// Left Thumb
_______, _______,
@@ -146,8 +231,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
_______, _______, _______, _______, _______, _______,
- _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
+ KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
_______, _______, _______, _______,
// Right Thumb
_______, _______,
@@ -155,12 +240,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______
),
-[_RA] = KEYMAP(
+[_KP] = KEYMAP(
// Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, _______, _______, _______, _______, _______,
- _______, _______, QWERTY, COLEMAK, DVORAK, _______,
+ KC_PWR, _______, _______, _______, _______, _______,
+ KC_SLEP, _______, _______, _______, _______, _______,
+ KC_WAKE, _______, QWERTY, COLEMAK, DVORAK, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
// Left Thumb
@@ -169,16 +254,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______,
// Right Hand */
- _______, _______, _______, RESET, _______, _______, _______, _______, _______,
- KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- _______, _______, _______, _______, _______, _______,
- _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,
- _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
+ _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
+ _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
+ _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
+ _______, _______, KC_PDOT, KC_PENT,
// Right Thumb
_______, _______,
_______,
- _______, _______, _______
+ _______, _______, KC_P0
)
};
diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md
index da033be1e9..3433a94c54 100644
--- a/keyboards/kinesis/keymaps/xyverz/readme.md
+++ b/keyboards/kinesis/keymaps/xyverz/readme.md
@@ -1 +1,130 @@
-# The default keymap for kinesis-advantage
+# Xyverz's Kinesis Keymap
+
+## About this keymap:
+
+The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my QMK Kinesis.
+
+The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that.
+
+I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
+
+## Still to do:
+
+ * Need to figure out a better position for the ESC key.
+ * Come up with a function for the empty keys shown in the alpha layers below.
+ * Fix the CapsLock, NumLock, and ScrLck LEDs.
+
+### Function Keys on All Layers (keypad toggles):
+ ,-----------------------------------------------------------------.
+ | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 |
+ `-----------------------------------------------------------------'
+ ,-----------------------------------------------------------------.
+ | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET |
+ `-----------------------------------------------------------------'
+
+### Layer 0: Dvorak layer
+
+ ,-------------------------------------------.,-------------------------------------------.
+ | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Tab | ' | , | . | P | Y || F | G | C | R | L | \ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | CapsLk | A | O | E | U | I || D | H | T | N | S | - |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | ` | INS | Left | Rght | | Up | Dn | / | = |
+ `---------------------------' `---------------------------'
+ ,--------------.,--------------.
+ |Ctr/ESC| LAlt || RGUI |Ctr/ESC|
+ ,------|-------|------||------+-------+-------.
+ | | Del | Home || PgUp | Enter | |
+ | BkSp | / |------||------| / | Space |
+ | | Media | End || PgDn | KeyPd | |
+ `---------------------'`----------------------'
+
+### Layer 1: QWERTY layer
+
+ ,-------------------------------------------.,-------------------------------------------.
+ | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Tab | Q | W | E | R | T || Y | U | I | O | P | \ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | CapsLk | A | S | D | F | G || H | J | K | L | ; | ' |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | B || N | M | , | . | / | RShift |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | ` | INS | Left | Rght | | Up | Dn | [ | ] |
+ `---------------------------' `---------------------------'
+ ,--------------.,--------------.
+ |Ctr/ESC| LAlt || RGUI |Ctr/ESC|
+ ,------|-------|------||------+-------+-------.
+ | | Del | Home || PgUp | Enter | |
+ | BkSp | / |------||------| / | Space |
+ | | Media | End || PgDn | KeyPd | |
+ `---------------------'`----------------------'
+
+### Keymap 2: Colemak layer
+
+ ,-------------------------------------------.,-------------------------------------------.
+ | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Tab | Q | W | F | P | G || J | L | U | Y | ; | \ |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | BkSpc | A | R | S | T | D || H | N | E | I | O | ' |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | LShift | Z | X | C | V | B || K | M | , | . | / | RShift |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | ` | INS | Left | Rght | | Up | Dn | [ | ] |
+ `---------------------------' `---------------------------'
+ ,--------------.,--------------.
+ |Ctr/ESC| LAlt || RGUI |Ctr/ESC|
+ ,------|-------|------||------+-------+-------.
+ | | Del | Home || PgUp | Enter | |
+ | BkSp | / |------||------| / | Space |
+ | | Media | End || PgDn | KeyPd | |
+ `---------------------'`----------------------'
+
+### layer 3 : Media layer
+
+ ,-------------------------------------------.,-------------------------------------------.
+ | F11 | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F12 |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | | | | | || | | | | | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | | | | | || | Mute | Vol- | Vol+ | | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | | | | | || Stop | Prev | Play | Next | Sel | |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | | | | | | | | | |
+ `---------------------------' `---------------------------'
+ ,-------------.,-------------.
+ | | || | |
+ ,------|------|------||------+------+------.
+ | | | || | | |
+ | | |------||------| | |
+ | | | || | | |
+ `--------------------'`--------------------'
+
+
+
+### Keymap 4: Keypad layer
+
+ ,-------------------------------------------.,-------------------------------------------.
+ | Power | | | | | || | NmLk | KP = | KP / | KP * | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Sleep | | | | | || | KP 7 | KP 8 | KP 9 | KP - | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | Wake | | | | | || | KP 4 | KP 5 | KP 6 | KP + | |
+ |--------+------+------+------+------+------||------+------+------+------+------+--------|
+ | | |QWERTY|Colemk|Dvorak| || | KP 1 | KP 2 | KP 3 |KP Ent| |
+ `--------+------+------+------+------+------'`------+------+------+------+------+--------'
+ | | | | | | | | KP . |KP Ent| |
+ `---------------------------' `----------------------------------'
+ ,-------------.,-------------.
+ | | || | |
+ ,------|------|------||------+------+------.
+ | | | || | | |
+ | | |------||------| | KP 0 |
+ | | | || | | |
+ `--------------------'`--------------------'