summaryrefslogtreecommitdiff
path: root/keyboards/kinesis/keymaps/alvicstep
diff options
context:
space:
mode:
authoralvicstep <alvicstep@gmail.com>2023-08-14 00:01:31 -0700
committerGitHub <noreply@github.com>2023-08-14 00:01:31 -0700
commit6f3beae895a498dc8c86c7a79ed3c77d458da027 (patch)
tree7b05332d42731ff5c167c56792fa2b2a16093b8d /keyboards/kinesis/keymaps/alvicstep
parent3da773dbdb4a4d5ae56d92d1aefc0851756adcea (diff)
Kintwin controller for kinesis keyboard, split layout (#21614)
Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/kinesis/keymaps/alvicstep')
-rw-r--r--keyboards/kinesis/keymaps/alvicstep/keymap.c135
-rw-r--r--keyboards/kinesis/keymaps/alvicstep/readme.md105
2 files changed, 240 insertions, 0 deletions
diff --git a/keyboards/kinesis/keymaps/alvicstep/keymap.c b/keyboards/kinesis/keymaps/alvicstep/keymap.c
new file mode 100644
index 0000000000..e9373ea214
--- /dev/null
+++ b/keyboards/kinesis/keymaps/alvicstep/keymap.c
@@ -0,0 +1,135 @@
+// Copyright 2023 Alex Stepanov (@alvicstep)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _BASE, // default layer
+ _KEYPAD, // arrow keys, shifted symbols, HOME, END, PGUP, PGDN, FKeys, CTRL(TAB)
+ _NUMPAD // numpad keys
+};
+
+/* ,------------------------------------------------------------------------------------------------------------------------.
+* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | | F9 | F10 | F11 | F12 |PSCR|SLCK|PAUS|KPAD|BOOT|
+* |--------+------+------+------+-------+------+--------------------------------+------+------+------+------+------+--------|
+* | -_ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | =+ |
+* |--------+------+------+------+-------+------| +------+------+------+------+------+--------|
+* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
+* |--------+------+------+------+-------+------| |------+------+------+------+------+--------|
+* | Del | A | S | D | F | G | | H | J | K | L | ;: | '" |
+* |--------+------+------+------+-------+------| |------+------+------+------+------+--------|
+* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? |Sht/Ent |
+* `--------+------+------+------+-------+------- `------+------+------+------+------+--------'
+* | `~ | Gui | Esc |MO(Num)| | [{ | ]} | | |
+* `----------------------------' `---------------------------'
+* ,---------------. ,---------------.
+* |Alt+Tab| Alt | | Alt |TO(Num)|
+* ,------|------ |-------| |-------+-------+------.
+* | | | Shift | | Shift | | |
+* | BkSp | KPAD |-------| |------ | KPAD | Space|
+* | | | Ctrl | | Ctrl | | |
+* `----------------------' `----------------------'
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_BASE] = LAYOUT(
+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_PSCR,KC_SCRL,KC_PAUS,TO(_KEYPAD),QK_BOOT,
+KC_MINS,KC_1,KC_2,KC_3,KC_4,KC_5, KC_6,KC_7,KC_8,KC_9,KC_0,KC_EQL,
+KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T, KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,
+KC_DEL,KC_A,KC_S,KC_D,KC_F,KC_G, KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,
+KC_LSFT,KC_Z,KC_X,KC_C,KC_V,KC_B, KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,SC_SENT,
+KC_GRV,KC_LGUI,KC_ESC,MO(_NUMPAD), KC_LBRC,KC_RBRC,KC_NO,KC_NO,
+ LALT(KC_TAB),KC_LALT, KC_RALT,TO(_NUMPAD),
+ KC_LSFT, KC_RSFT,
+ KC_BSPC,MO(_KEYPAD),KC_LCTL, KC_RCTL,MO(_KEYPAD),KC_SPC
+),
+/* ,------------------------------------------------------------------------------------------------------------------------.
+* | | | | | | | | | | | | | | | | | TO(BASE) | |
+* |--------+------+------+------+------+------+---------------------------------+------+------+------+------+------+--------|
+* | _ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | F1 | F2 | F3 | F4 | F5 | | | Home | Up | End | | | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | F6 | F7 | F8 | F9 | F10 | | Pgup | Lft | Dwn | Rgt | : | " |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | CapsLk | | | | F11 | F12 | | Pgdn | | < | > | ? | |
+* `--------+------+------+------+------+------' `------+------+------+------+------+--------'
+* | ~ | INS | | | | { | } | | |
+* `---------------------------' `---------------------------'
+* ,--------------. ,--------------------.
+* |Ctl+Tab| | | | | |
+* ,------|------ |------| |------+------+------.
+* | | |Shift | |Shift | | |
+* | | |------| |------| | |
+* | | | Ctrl | | Ctrl | | |
+* `-------------- ------' `--------------------'
+*/
+[_KEYPAD] = LAYOUT(
+ KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,TO(_BASE),KC_NO,
+ KC_UNDS,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_PLUS,
+ KC_NO,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5, KC_NO,KC_HOME,KC_UP,KC_END,KC_NO,KC_PIPE,
+ KC_CAPS,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10, KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_COLN,KC_DQUO,
+ KC_NO,KC_NO,KC_NO,KC_NO,KC_F11,KC_F12, KC_PGDN,KC_NO,KC_LT,KC_GT,KC_QUES,KC_NO,
+ KC_TILD,KC_INS,KC_NO,KC_NO, KC_LCBR,KC_RCBR,KC_NO,KC_NO,
+ LCTL(KC_TAB),KC_NO, KC_NO,KC_NO,
+ KC_LSFT, KC_RSFT,
+ KC_NO,KC_NO,KC_LCTL, KC_RCTL,KC_NO,KC_NO
+),
+/*,--------+------+------+------+------+------+ +------+------+------+------+------+--------.
+* | | | | | | | | | Base | = | / | * | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | | | | | | | | | 7 | 8 | 9 | - | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | Del | | | | | | | | 4 | 5 | 6 | + | |
+* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
+* | BkSp | | | | | | | | 1 | 2 | 3 |Enter | Enter |
+* `--------+------+------+------+------+------' `------+------+------+------+------+--------'
+* | | | | | | . |Enter | | |
+* `---------------------------' `---------------------------'
+* ,-------------. ,-------------.
+* | | | | | Base |
+* ,------|------|------| |------+------+------.
+* | | | | | | | |
+* | BkSp | |------| |------| | 0 |
+* | | | | | | | |
+* `--------------------' `--------------------'
+*/
+
+[_NUMPAD] = LAYOUT(
+ KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
+ KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,TO(_BASE),KC_EQL,KC_SLSH,KC_ASTR,KC_NO,
+ KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_7,KC_8,KC_9,KC_MINS,KC_NO,
+ KC_DEL,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_4,KC_5,KC_6,KC_PLUS,KC_NO,
+ KC_BSPC,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_1,KC_2,KC_3,KC_ENT,KC_ENT,
+ KC_NO,KC_NO,KC_NO,KC_NO, KC_DOT,KC_ENT,KC_NO,KC_NO,
+ KC_NO,KC_NO, KC_NO,TO(_BASE),
+ KC_NO, KC_NO,
+ KC_BSPC,KC_NO,KC_NO, KC_NO,KC_NO,KC_0
+)
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ //set LEDs which are triggered by a layer change
+ #ifdef LED_COMPOSE_PIN
+ writePin(LED_COMPOSE_PIN, !layer_state_cmp(state, _KEYPAD));
+ #endif
+
+ #ifdef LED_NUM_LOCK_PIN
+ writePin(LED_NUM_LOCK_PIN, !layer_state_cmp(state, _NUMPAD));
+ #endif
+
+ return state;
+};
+
+bool led_update_user(led_t led_state) {
+ #ifdef LED_CAPS_LOCK_PIN
+ writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock);
+ #endif
+
+ #ifdef LED_SCROLL_LOCK_PIN
+ writePin(LED_SCROLL_LOCK_PIN, !led_state.scroll_lock);
+ #endif
+
+ //disable default processing of LEDs
+ return false;
+} \ No newline at end of file
diff --git a/keyboards/kinesis/keymaps/alvicstep/readme.md b/keyboards/kinesis/keymaps/alvicstep/readme.md
new file mode 100644
index 0000000000..c21618a1dc
--- /dev/null
+++ b/keyboards/kinesis/keymaps/alvicstep/readme.md
@@ -0,0 +1,105 @@
+## Custom Layout
+Kinesis Contoured family of keyboards belong to a relatively small group of keyboards that utilize thumb clusters. The keycap profiles of thumb cluster keys make it easy to press multiple keys simultaneously by a thumb finger. Co-locating CTRL, SHIFT and KEYPAD modifiers in the thumb cluster gives truly unique capabilities to these keyboards.
+
+### "alvicstep" Layout
+The **alvicstep** layout is optimized for software development on a Windows machine. It is a result of many years of daily usage. It is a great starting point for your own design.
+
+#### Layout Features
+- 3 layers: default layer, keypad layer, numpad layer
+- keypad layer allows for 2 finger operation using **arrow** keys together with
+ - **CTRL** and/or **SHIFT** modifiers OR
+ - **HOME/END** keys OR
+ - **PAGEUP/PAGEDOWN** keys.
+- two finger operations can be achieved by holding up to 3 modifier keys (KEYPAD/SHIFT/CTRL) with a thumb finger and using index/middle/ring finger by pressing keywell keys. For example, you can fully control caret position and text selection of:
+ - each letter
+ - each word
+ - from a current caret position to the beginning of the line
+ - from a current caret position to the end of the line
+ - multiple lines
+ - multiple pages
+- with little practice you will be able to string together different key combinations. For example, executing `KEYPAD + O` and then `KEYPAD + SHIFT + U` selects the whole line of text with barely any finger movement. The best part is that it works in any text editor!
+- keypad layer allows accessing **F1-F12** and **ESC** keys by moving only a single finger away from the home row, making it very fast and convenient
+- **KEYPAD** key can be used to access US ANSI Shifted Symbols instead of pressing a SHIFT key. This gives you two advantages: it makes KEYPAD key a "go to" key which is used in almost all operations unrelated to typing of letters. To understand the second advantage, compare pressing `SHIFT + 0` and `KEYPAD + 0` using the right hand
+- **NUMPAD** "momentary" modifier key can be used to quickly switch to a numeric pad while typing alphanumeric strings. In a stock Kinesis firmware you would have to switch to KEYPAD layer and then press NUMLOCK key which makes it unusable for this task
+- **NUMPAD** key in the right thumb cluster can be used to switch to a numeric pad for long numeric sequences
+
+#### Layout Layers
+
+![](https://i.imgur.com/86LCI3zh.jpg)
+![](https://i.imgur.com/Gv4WBw7h.jpg)
+![](https://i.imgur.com/gKXMUI2h.jpg)
+
+#### Notes
+- MO(1) - switch to **KEYPAD** layer while key is being pressed
+- MO(2) - switch to **NUMPAD** layer while key is being pressed
+- TO(0) - switch to **BASE** layer
+- TO(2) - switch to **NUMPAD** layer
+- Rsft(Enter) - acts as an ENTER key when pressed and released. Acts as a SHIFT modifier in combination with other keys
+- Bt - enter bootloader mode
+- Alt(Tab) - toggle between last two active applications
+- Ctrl(Tab) - toggle between last two active tabs
+
+
+### Differences From Stock
+- **{}[]** keys are moved to the left side of the keywell to be easily accessible
+- **-** and **+** keys are switched
+- **CAPS LOCK** key is moved to **KEYPAD** layer and is mapped to **DELETE** on **BASE** layer
+
+### Shortcuts
+
+
+|Shortcut | Control Caret |
+|---------------------|---------------------------------------|
+|`KEYPAD + J` | move caret one character left |
+|`KEYPAD + L` | move caret one character right |
+|`KEYPAD + I` | move caret one line up |
+|`KEYPAD + K` | move caret one line down |
+|`KEYPAD + CTRL + J` | move caret one word to the left |
+|`KEYPAD + CTRL + L` | move caret one word to the right |
+|`KEYPAD + U` | move caret to the start of the line |
+|`KEYPAD + O` | move caret to the end of the line |
+|`KEYPAD + H` | move caret one page up |
+|`KEYPAD + N` | move caret one page down |
+
+
+|Shortcut | Scroll Lock |
+|---------------------|---------------------------------------|
+|`KEYPAD + CTRL + I` | scroll page up |
+|`KEYPAD + CTRL + K` | scroll page down |
+
+
+|Shortcut | Select Text |
+|-----------------------------|-------------------------------|
+|`KEYPAD + CTRL + SHIFT + J` | select one word to the left |
+|`KEYPAD + CTRL + SHIFT + L` | select one word to the right |
+|`KEYPAD + CTRL + SHIFT + I` | select one line up |
+|`KEYPAD + CTRL + SHIFT + K` | select one line down |
+|`KEYPAD + SHIFT + H` | select one page up |
+|`KEYPAD + SHIFT + N` | select one page down |
+|`KEYPAD + CTRL + SHIFT + U` | select from beginning of the file up to the caret position |
+|`KEYPAD + CTRL + SHIFT + O` | select from caret position to the end of the file |
+
+
+|Shortcut | US ANSI Shifted Symbols |
+|---------------------|---------------------------------------|
+|`KEYPAD + -` | _ |
+|`KEYPAD + 1` | ! |
+|`KEYPAD + 2` | @ |
+|`KEYPAD + 3` | # |
+|`KEYPAD + 4` | $ |
+|`KEYPAD + 5` | % |
+|`KEYPAD + 6` | ^ |
+|`KEYPAD + 7` | & |
+|`KEYPAD + 8` | * |
+|`KEYPAD + 9` | ( |
+|`KEYPAD + 0` | ) |
+|`KEYPAD + =` | + |
+|`KEYPAD + \` | \| |
+|`KEYPAD + '` | " |
+|`KEYPAD + ;` | : |
+|`KEYPAD + /` | ? |
+|`KEYPAD + [` | { |
+|`KEYPAD + ]` | } |
+|`KEYPAD + ,` | < |
+|`KEYPAD + .` | > |
+|`KEYPAD + BACKTICK` | ~ | \ No newline at end of file