1
0
Fork 0

More refinements to my Kinesis keymap. Added a readme.md file.

This commit is contained in:
Xyverz 2017-02-15 22:54:52 -08:00
parent 1dabceb197
commit 80d5649f25
2 changed files with 270 additions and 56 deletions

View file

@ -7,8 +7,8 @@ extern keymap_config_t keymap_config;
#define _DV 0 // Dvorak layer #define _DV 0 // Dvorak layer
#define _QW 1 // Qwerty layer #define _QW 1 // Qwerty layer
#define _CM 2 // Colemak layer #define _CM 2 // Colemak layer
#define _LO 3 // Media Layer #define _MD 3 // Media Layer
#define _RA 4 // Keypad Layer #define _KP 4 // Keypad Layer
// Macro name shortcuts // Macro name shortcuts
#define DVORAK M(_DV) #define DVORAK M(_DV)
@ -23,30 +23,115 @@ extern keymap_config_t keymap_config;
#define _______ KC_TRNS #define _______ KC_TRNS
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
/**************************************************************************************************** /*
*
* Keymap: Default Layer in Qwerty Function Keys on All Layers (Keypad toggles):
* ,-----------------------------------------------------------------.
* ,-------------------------------------------------------------------------------------------------------------------. | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 |
* | 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) | -_ | | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET |
* |--------+------+------+------+------+------| +------+------+------+------+------+--------| `-----------------------------------------------------------------'
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------| Dvorak layer:
* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" | ,-------------------------------------------.,-------------------------------------------.
* |--------+------+------+------+------+------| |------+------+------+------+------+--------| | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ |
* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | |--------+------+------+------+------+------||------+------+------+------+------+--------|
* `--------+------+------+------+------+------- `------+------+------+------+------+--------' | Tab | ' | , | . | P | Y || F | G | C | R | L | \ |
* | `~ | INS | Left | Right| | Up | Down | [{ | ]} | |--------+------+------+------+------+------||------+------+------+------+------+--------|
* `---------------------------' `---------------------------' | CapsLk | A | O | E | U | I || D | H | T | N | S | - |
* ,-------------. ,-------------. |--------+------+------+------+------+------||------+------+------+------+------+--------|
* | Ctrl | Alt | | Gui | Ctrl | | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift |
* ,------|------|------| |------+------+------. `--------+------+------+------+------+------'`------+------+------+------+------+--------'
* | | | Home | | PgUp | | | | ` | INS | Left | Rght | | Up | Dn | / | = |
* | BkSp | Del |------| |------|Return| Space| `---------------------------' `---------------------------'
* | | | End | | PgDn | | | ,--------------.,--------------.
* `--------------------' `--------------------' |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] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@ -62,10 +147,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Left Thumb // Left Thumb
CTL_T(KC_ESC), KC_LALT, CTL_T(KC_ESC), KC_LALT,
KC_HOME, KC_HOME,
KC_BSPC, LT(_LO, KC_DEL), KC_END, KC_BSPC, LT(_MD, KC_DEL), KC_END,
// Right Hand // 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_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,
KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 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 // Right Thumb
KC_RGUI, CTL_T(KC_ESC), KC_RGUI, CTL_T(KC_ESC),
KC_PGUP, KC_PGUP,
KC_PGDN, LT(_RA, KC_ENT), KC_SPC KC_PGDN, LT(_KP, KC_ENT), KC_SPC
), ),
[_QW] = KEYMAP( [_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
// Left Thumb // Left Thumb
KC_LCTL, KC_LALT, CTL_T(KC_ESC), KC_LALT,
KC_HOME, KC_HOME,
KC_BSPC, LT(_LO, KC_DEL), KC_END, KC_BSPC, LT(_MD, KC_DEL), KC_END,
// Right Hand // 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_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL , 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_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC,
// Right Thumb // Right Thumb
KC_RGUI, KC_RCTL, KC_RGUI, CTL_T(KC_ESC),
KC_PGUP, KC_PGUP,
KC_PGDN, LT(_RA, KC_ENT), KC_SPC KC_PGDN, LT(_KP, KC_ENT), KC_SPC
), ),
[_CM] = KEYMAP( [_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
// Left Thumb // Left Thumb
KC_LCTL, KC_LALT, CTL_T(KC_ESC), KC_LALT,
KC_HOME, KC_HOME,
KC_BSPC, LT(_LO, KC_DEL), KC_END, KC_BSPC, LT(_MD, KC_DEL), KC_END,
// Right Hand // 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_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, 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_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC,
// Right Thumb // Right Thumb
KC_RGUI, KC_RCTL, KC_RGUI, CTL_T(KC_ESC),
KC_PGUP, KC_PGUP,
KC_PGDN, LT(_RA, KC_ENT), KC_SPC KC_PGDN, LT(_KP, KC_ENT), KC_SPC
), ),
[_LO] = KEYMAP( [_MD] = KEYMAP(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, 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 // 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_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
// Right Thumb // Right Thumb
_______, _______, _______, _______,
@ -155,12 +240,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______ _______, _______, _______
), ),
[_RA] = KEYMAP( [_KP] = KEYMAP(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PWR, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_SLEP, _______, _______, _______, _______, _______,
_______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_WAKE, _______, QWERTY, COLEMAK, DVORAK, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
// Left Thumb // Left Thumb
@ -169,16 +254,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
// Right Hand */ // Right Hand */
_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
_______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
_______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
_______, _______, _______, _______, _______, _______, KC_PDOT, KC_PENT,
// Right Thumb // Right Thumb
_______, _______, _______, _______,
_______, _______,
_______, _______, _______ _______, _______, KC_P0
) )
}; };

View file

@ -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 |
| | | || | | |
`--------------------'`--------------------'