Skip to content

Instantly share code, notes, and snippets.

@bgkendall
Last active November 11, 2023 19:36
Show Gist options
  • Save bgkendall/230a78e5288cc6550cb7aa46293340c7 to your computer and use it in GitHub Desktop.
Save bgkendall/230a78e5288cc6550cb7aa46293340c7 to your computer and use it in GitHub Desktop.
Vial configuration for Gherkin (10×3) with three extra keys and an encoder.
{
"version": 1,
"uid": 4919955219667236387,
"layout": [
[
[
"TD(2)",
"TD(3)",
"KC_D",
"KC_P",
"KC_F",
"KC_J"
],
[
"KC_L",
"KC_O",
"KC_Y",
"KC_BSPACE",
"LCTL_T(KC_A)",
"LALT_T(KC_R)"
],
[
"LGUI_T(KC_S)",
"LSFT_T(KC_T)",
"KC_G",
"KC_M",
"RSFT_T(KC_N)",
"RGUI_T(KC_E)"
],
[
"RALT_T(KC_I)",
"RCTL_T(KC_U)",
"LSFT_T(KC_Z)",
"KC_X",
"KC_C",
"KC_V"
],
[
"KC_B",
"KC_K",
"KC_H",
"TD(0)",
"TD(1)",
"KC_ESCAPE"
],
[
"LT3(KC_SPACE)",
-1,
"LT4(KC_ENTER)",
-1,
-1,
"LT2(KC_TAB)"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO"
]
],
[
[
"KC_Q",
"KC_W",
"KC_E",
"KC_R",
"KC_T",
"KC_Y"
],
[
"KC_U",
"KC_I",
"KC_O",
"KC_P",
"KC_A",
"KC_S"
],
[
"KC_D",
"KC_F",
"KC_G",
"KC_H",
"KC_J",
"KC_K"
],
[
"KC_L",
"KC_BSPACE",
"LSFT_T(KC_Z)",
"KC_X",
"KC_C",
"KC_V"
],
[
"KC_B",
"KC_N",
"KC_M",
"TD(0)",
"TD(1)",
"KC_ESCAPE"
],
[
"LT3(KC_SPACE)",
-1,
"LT4(KC_ENTER)",
-1,
-1,
"LGUI_T(KC_TAB)"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO"
]
],
[
[
"USER02",
"USER03",
"KC_F3",
"RALT(KC_RBRACKET)",
"KC_F5",
"KC_F6"
],
[
"LSFT(KC_7)",
"LSFT(KC_8)",
"SGUI(KC_Z)",
"KC_F10",
"RALT(KC_LBRACKET)",
"0x162f"
],
[
"LGUI(KC_S)",
"0x1630",
"LSFT(KC_2)",
"0x162d",
"RALT(KC_MINUS)",
"RALT(KC_SCOLON)"
],
[
"LSFT(KC_BSLASH)",
"LSFT(KC_6)",
"LGUI(KC_Z)",
"LGUI(KC_X)",
"LGUI(KC_C)",
"LGUI(KC_V)"
],
[
"USER01",
"KC_GRAVE",
"LSFT(KC_3)",
"RALT_T(KC_BSLASH)",
"RSFT_T(KC_SLASH)",
"KC_CAPSLOCK"
],
[
"KC_TRNS",
-1,
"MO(5)",
-1,
-1,
"KC_TRNS"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_J",
"KC_NO",
"KC_NO"
]
],
[
[
"KC_TAB",
"C_S(KC_TAB)",
"KC_UP",
"LCTL(KC_TAB)",
"KC_HOME",
"KC_PGUP"
],
[
"LSFT(KC_GRAVE)",
"KC_0",
"USER00",
"KC_EQUAL",
"KC_GRAVE",
"KC_LEFT"
],
[
"KC_DOWN",
"KC_RIGHT",
"KC_END",
"KC_PGDOWN",
"KC_RSHIFT",
"KC_RGUI"
],
[
"KC_RALT",
"RCTL_T(KC_MINUS)",
"LSFT_T(KC_2)",
"KC_4",
"OSM(MOD_LCTL|MOD_LALT|MOD_LGUI)",
"KC_BTN3"
],
[
"LSFT_T(KC_LBRACKET)",
"RSFT_T(KC_RBRACKET)",
"KC_SLASH",
"KC_NO",
"KC_NO",
"USER10"
],
[
"KC_TRNS",
-1,
"KC_ENTER",
-1,
-1,
"KC_LGUI"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_C",
"KC_NO",
"KC_NO"
]
],
[
[
"LSFT(KC_QUOTE)",
"KC_KP_7",
"KC_KP_8",
"KC_KP_9",
"KC_KP_MINUS",
"LSFT(KC_5)"
],
[
"LSFT(KC_7)",
"KC_KP_ASTERISK",
"KC_KP_SLASH",
"KC_TRNS",
"KC_QUOTE",
"KC_KP_4"
],
[
"KC_KP_5",
"KC_KP_6",
"KC_KP_PLUS",
"KC_LBRACKET",
"LSFT(KC_GRAVE)",
"LSFT(KC_4)"
],
[
"LSFT(KC_BSLASH)",
"USER05",
"LT6(KC_KP_EQUAL)",
"KC_KP_1",
"KC_KP_2",
"KC_KP_3"
],
[
"KC_KP_DOT",
"LSFT(KC_COMMA)",
"LSFT(KC_3)",
"LSFT(KC_SLASH)",
"LSFT(KC_1)",
"KC_TRNS"
],
[
"KC_KP_ENTER",
-1,
"KC_TRNS",
-1,
-1,
"LT5(KC_KP_0)"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_G",
"KC_NO",
"KC_NO"
]
],
[
[
"KC_F1",
"KC_F2",
"KC_F3",
"KC_F4",
"KC_F5",
"KC_F6"
],
[
"KC_F7",
"KC_F8",
"KC_F9",
"RESET",
"DF(0)",
"DF(1)"
],
[
"KC_SLEP",
"KC_BRIU",
"0x1a21",
"KC_MUTE",
"KC_VOLU",
"KC_F10"
],
[
"KC_F11",
"KC_F12",
"M0",
"M1",
"0x1d43",
"KC_BRID"
],
[
"KC_NO",
"KC_CAPSLOCK",
"KC_VOLD",
"KC_NO",
"KC_NO",
"BL_TOGG"
],
[
"BL_TOGG",
-1,
"KC_TRNS",
-1,
-1,
"KC_TRNS"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_M",
"KC_NO",
"KC_NO"
]
],
[
[
"KC_NUMLOCK",
"KC_7",
"KC_8",
"KC_9",
"KC_KP_SLASH",
"KC_TRNS"
],
[
"KC_TRNS",
"KC_TRNS",
"KC_TRNS",
"KC_DELETE",
"LGUI(KC_QUOTE)",
"KC_4"
],
[
"KC_5",
"KC_6",
"KC_KP_ASTERISK",
"KC_RBRACKET",
"KC_TRNS",
"KC_TRNS"
],
[
"KC_TRNS",
"KC_TRNS",
"KC_TRNS",
"KC_1",
"KC_2",
"KC_3"
],
[
"KC_DOT",
"LSFT(KC_DOT)",
"KC_TRNS",
"LSFT(KC_LBRACKET)",
"LSFT(KC_RBRACKET)",
"KC_TRNS"
],
[
"KC_TRNS",
-1,
"KC_TRNS",
-1,
-1,
"KC_0"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_S",
"KC_NO",
"KC_NO"
]
]
],
"encoder_layout": [
[
[
"USER06",
"USER07"
]
],
[
[
"USER06",
"USER07"
]
],
[
[
"USER08",
"USER09"
]
],
[
[
"KC_PGDOWN",
"KC_PGUP"
]
],
[
[
"KC_TRNS",
"KC_TRNS"
]
],
[
[
"BL_DEC",
"BL_INC"
]
],
[
[
"KC_TRNS",
"KC_TRNS"
]
]
],
"layout_options": 5,
"macro": [
[],
[],
[],
[
[
"text",
"../"
]
],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[]
],
"vial_protocol": 6,
"via_protocol": 9,
"tap_dance": [
[
"KC_COMMA",
"LSFT(KC_SLASH)",
"KC_SCOLON",
"KC_COMMA",
160
],
[
"KC_DOT",
"LSFT(KC_1)",
"LSFT(KC_SCOLON)",
"M3",
160
],
[
"KC_Q",
"KC_Q",
"KC_QUOTE",
"KC_QUOTE",
175
],
[
"KC_W",
"KC_W",
"LSFT(KC_QUOTE)",
"LSFT(KC_QUOTE)",
175
]
],
"combo": [
[
"TD(2)",
"TD(3)",
"KC_NO",
"KC_NO",
"KC_ESCAPE"
],
[
"KC_Y",
"KC_BSPACE",
"KC_NO",
"KC_NO",
"KC_MINUS"
],
[
"LSFT_T(KC_Z)",
"KC_X",
"KC_NO",
"KC_NO",
"0x7c73"
],
[
"TD(0)",
"TD(1)",
"KC_NO",
"KC_NO",
"KC_EQUAL"
]
],
"key_override": [
{
"trigger": "KC_BSPACE",
"replacement": "KC_DELETE",
"layers": 65535,
"trigger_mods": 2,
"negative_mod_mask": 0,
"suppressed_mods": 2,
"options": 135
},
{
"trigger": "LGUI_T(KC_S)",
"replacement": "LSFT(KC_4)",
"layers": 1,
"trigger_mods": 64,
"negative_mod_mask": 11,
"suppressed_mods": 64,
"options": 135
},
{
"trigger": "LCTL_T(KC_A)",
"replacement": "LSFT(KC_2)",
"layers": 1,
"trigger_mods": 64,
"negative_mod_mask": 11,
"suppressed_mods": 64,
"options": 135
},
{
"trigger": "TD(0)",
"replacement": "LSFT(KC_9)",
"layers": 1,
"trigger_mods": 34,
"negative_mod_mask": 17,
"suppressed_mods": 0,
"options": 135
},
{
"trigger": "TD(1)",
"replacement": "LSFT(KC_0)",
"layers": 1,
"trigger_mods": 34,
"negative_mod_mask": 17,
"suppressed_mods": 0,
"options": 135
},
{
"trigger": "TD(0)",
"replacement": "KC_LBRACKET",
"layers": 1,
"trigger_mods": 17,
"negative_mod_mask": 68,
"suppressed_mods": 17,
"options": 135
},
{
"trigger": "TD(1)",
"replacement": "KC_RBRACKET",
"layers": 1,
"trigger_mods": 17,
"negative_mod_mask": 68,
"suppressed_mods": 17,
"options": 135
},
{
"trigger": "TD(0)",
"replacement": "LSFT(KC_COMMA)",
"layers": 1,
"trigger_mods": 4,
"negative_mod_mask": 1,
"suppressed_mods": 4,
"options": 135
},
{
"trigger": "TD(1)",
"replacement": "LSFT(KC_DOT)",
"layers": 1,
"trigger_mods": 4,
"negative_mod_mask": 17,
"suppressed_mods": 4,
"options": 135
}
],
"settings": {}
}
@bgkendall
Copy link
Author

NOTE 3: Some relevant settings:

#define IGNORE_MOD_TAP_INTERRUPT
#define NO_AUTO_SHIFT_ALPHA
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
#define AUTO_SHIFT_NO_SETUP
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD

@bgkendall
Copy link
Author

bgkendall commented Nov 11, 2023

NOTE 4: Description of some of the non-obvious stuff:

  • Home row mods — CAGS
  • Combos — pair in each corner, clockwise from top-left (Q + W):
    • Escape
    • -
    • =
    • Caps Word.
  • Tap Dances (tap tap and hold☟):
    • Q Q'
    • W W"
    • , ,;
    • ,☟ → ?
    • . .:
    • .☟ → !
    • . .☟ → “../”
  • Key Overrides:
    • Shift + BackspaceDelete
    • Right Alt (I) + S$
    • Right Alt + A@
    • Shift + ,(
    • Shift + .)
    • Control + ,[
    • Control + .]
    • Shift + Control + ,{
    • Shift + Control + .}
    • Left Alt + ,<
    • Left Alt + .>
  • User keys:
    • 00 — sends “000” (unused)
    • 01 — with modifier keys send variations on my name, email, etc.
    • 02, 03 — hold Command and sends Backtick and Tab respectively (i.e., switches windows). Command is released when the layer returns to the default.
    • 04 — unused
    • 05 — locks the current layer until tapped again
    • 06, 07 — left/right. Pressing USER10 will flip to up/down. Pressing USER10 again flips back to left/right.
    • 08, 09 — up/down. Pressing USER10 will flip to left/right. Pressing USER10 again flips back to up/down.
    • 10 — flips the axis of 06/07 and 08/09

@bgkendall
Copy link
Author

bgkendall commented Nov 11, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment