122 lines
7.7 KiB
Markdown
122 lines
7.7 KiB
Markdown
jeebak's layout
|
|
=======================
|
|
This WIP keymap attempts to minimize fingers straying away from the home row.
|
|
To aid in this endeavor, when additional modifyer keys to switch layers are
|
|
needed, they will be mapped to home row keys. The `keymap.c` file will contain
|
|
the exact changes. The diagrams in this README shows the highlights of the
|
|
changes from the default mappings.
|
|
|
|
I also decided to change all calls to `persistant_default_layer_set()` to
|
|
`default_layer_set()` since this is my personal perference.
|
|
|
|
## Macros
|
|
```
|
|
#define ALT_TAB M(KC_ALT_TAB)
|
|
```
|
|
|
|
## Base Layers (Qwerty/Colemak/Dvorak)
|
|
These base layers are mostly the same as the default mappings. The interesting
|
|
changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit
|
|
an `Escape` when tapped, and act as a `Control` key when held. A `TODO` item is
|
|
to see if it can also act as a `CapsLock` when double-tapped. The right shift
|
|
key acts as `Enter` when tapped, and as a `Shift` key when held. The arrow
|
|
keys, which have been moved to the
|
|
[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
|
|
replaced with the Media keys as shown. The `ML/A` key activates the Mouse layer
|
|
when held, and emits an `A` when tapped.
|
|
```
|
|
,-----------------------------------------------------------------------------------------.
|
|
| | | | | | | | | | | | |
|
|
|----------+------+------+------+------+-------------+------+------+------+------+--------|
|
|
| Ctrl/Esc | ML/A | | | | | | | | | | |
|
|
|----------+------+------+------+------+------|------+------+------+------+------+--------|
|
|
| | | | | | | | | | | |Sft/Ent |
|
|
|----------+------+------+------+------+------+------+------+------+------+------+--------|
|
|
| PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
|
`-----------------------------------------------------------------------------------------'
|
|
```
|
|
|
|
## Lower Layer (Symbols and Function Keys)
|
|
The symbols and functions keys are essentially the same as the default mapping.
|
|
The most notable changes are that the symbol keys from the `RAISE` layer have
|
|
been moved here. The remaining Media keys replace those that are now on the
|
|
base layers. The `BACKLIT` key has also been moved here.
|
|
```
|
|
,-----------------------------------------------------------------------------------.
|
|
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
|
| [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
|
| ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
|
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
|
|Brite | | | | | | | Prev | Stop | Slct | Mute |
|
|
`-----------------------------------------------------------------------------------'
|
|
```
|
|
|
|
## Raise Layer (Numbers and Arithmetic Operators)
|
|
All of the numbers and arithmetic operators are available on this layer. Some
|
|
keys are duplicated for the convenience of their positions. The `0` and `$`
|
|
keys at the far left are for quick access to beginning and end of line in vim.
|
|
```
|
|
,-----------------------------------------------------------------------------------.
|
|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
|
| $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | |
|
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
|
| = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
|
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
|
|Brite | | | | | | | Prev | Stop | Slct | Mute |
|
|
`-----------------------------------------------------------------------------------'
|
|
```
|
|
|
|
## TouchCursor layer plus personal customizations
|
|
[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key
|
|
as the modifier, with the `IJKL` home row keys representing the inverted-T of
|
|
the arrow keys. All of the default TouchCursor keymappings for the right hand
|
|
are represented below. My personalizations include all of the keys shown for
|
|
the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
|
|
from the base layers) readily accessible from the home row allows quick word
|
|
jumps and highlighting when used in conjunction with the arrow keys. The
|
|
`Alt-Tab` macro is not only useful under Windows, but also under Mac when used
|
|
with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
|
|
The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in
|
|
this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
|
|
keycodes do not seem to work. There are macros in place that'll "automatically"
|
|
choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`,
|
|
etc.) depending on which layout you've currently selected (`AG_NORM` or
|
|
`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I
|
|
use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and
|
|
`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as
|
|
Google Chrome.
|
|
```
|
|
,-----------------------------------------------------------------------------------.
|
|
|AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
|
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
|
| | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R|
|
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
|
| | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
|
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
|
| | | | | | | | | | | |
|
|
`-----------------------------------------------------------------------------------'
|
|
```
|
|
|
|
## Mouse Layer
|
|
The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer.
|
|
The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the
|
|
mouse from the `doc/keycode.txt` file are represented, and logically located,
|
|
IMHO. The left and right click buttons are duplicated; on the right hand side,
|
|
for a quick click here and there, and again on the left hand side for when the
|
|
buttons need to be held for dragging things or highlighting text, thus allowing
|
|
the right hand to be free to use the up/down/left/right actions.
|
|
```
|
|
,-----------------------------------------------------------------------------------.
|
|
| | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
|
|
|------+------+------+------+------+-------------+------+------+------+------+------|
|
|
| |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
|
|
|------+------+------+------+------+------|------+------+------+------+------+------|
|
|
| | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
|
|
|------+------+------+------+------+------+------+------+------+------+------+------|
|
|
| | | | | | | | | | | |
|
|
`-----------------------------------------------------------------------------------'
|
|
```
|