Skip to content

Instantly share code, notes, and snippets.

@wez
Last active September 1, 2018 03:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wez/194d20569500d107cf6f55b0f7badf5c to your computer and use it in GitHub Desktop.
Save wez/194d20569500d107cf6f55b0f7badf5c to your computer and use it in GitHub Desktop.
Flutterby
[
{
"name": "Flutterby",
"author": "Wez Furlong",
"switchMount": "cherry",
"switchBrand": "cherry",
"switchType": "MX1A-G1xx",
"plate": true
},
[
{
"r": 15,
"rx": 8,
"ry": 1.125,
"x": -4,
"c": "#c4c8c5",
"a": 7
},
"3"
],
[
{
"y": -0.875,
"x": -5
},
"2",
{
"x": 1
},
"4"
],
[
{
"y": -0.875,
"x": -2
},
"5"
],
[
{
"y": -0.875,
"x": -6
},
"1",
{
"x": 4
},
"M0"
],
[
{
"y": -0.375,
"x": -4
},
"E"
],
[
{
"y": -0.875,
"x": -5
},
"W",
{
"x": 1
},
"R"
],
[
{
"y": -0.875,
"x": -2
},
"T"
],
[
{
"y": -0.875,
"x": -7,
"c": "#009057"
},
"",
{
"c": "#c4c8c5"
},
"Q",
{
"x": 4
},
"["
],
[
{
"y": -0.375,
"x": -4
},
"D"
],
[
{
"y": -0.875,
"x": -5
},
"S",
{
"x": 1,
"n": true
},
"F"
],
[
{
"y": -0.875,
"x": -2
},
"G"
],
[
{
"y": -0.875,
"x": -7,
"c": "#cd2f2c"
},
"",
{
"c": "#c4c8c5"
},
"A",
{
"x": 4
},
"-"
],
[
{
"y": -0.375,
"x": -4
},
"C"
],
[
{
"y": -0.875,
"x": -5
},
"X",
{
"x": 1
},
"V"
],
[
{
"y": -0.875,
"x": -2
},
"B"
],
[
{
"y": -0.875,
"x": -7,
"c": "#909596"
},
"Shift",
{
"c": "#c4c8c5"
},
"Z"
],
[
{
"r": 30,
"rx": 6.375,
"ry": 5.375,
"y": -1,
"c": "#ffc100"
},
"Gui"
],
[
{
"x": -1,
"c": "#009057"
},
"L1",
{
"c": "#f16f3b"
},
"Hyper"
],
[
{
"x": -1,
"c": "#009057"
},
"BkSp",
"Tab"
],
[
{
"r": -30,
"rx": 10.25,
"y": -1,
"x": -1,
"c": "#ffc100"
},
"Gui"
],
[
{
"x": -1,
"c": "#f16f3b"
},
"Esc/Ctrl",
{
"c": "#009057"
},
"L2"
],
[
{
"x": -1,
"c": "#0075ad"
},
"Enter",
{
"c": "#909596"
},
"Space"
],
[
{
"r": -15,
"rx": 8.625,
"ry": 1.125,
"x": 3,
"c": "#c4c8c5"
},
"8"
],
[
{
"y": -0.875,
"x": 2
},
"7",
{
"x": 1
},
"9"
],
[
{
"y": -0.875,
"x": 1
},
"6"
],
[
{
"y": -0.875
},
"M1",
{
"x": 4
},
"0"
],
[
{
"y": -0.375,
"x": 3
},
"I"
],
[
{
"y": -0.875,
"x": 2
},
"U",
{
"x": 1
},
"O"
],
[
{
"y": -0.875,
"x": 1
},
"Y"
],
[
{
"y": -0.875
},
"]",
{
"x": 4
},
"P",
"\\"
],
[
{
"y": -0.375,
"x": 3
},
"K"
],
[
{
"y": -0.875,
"x": 2,
"n": true
},
"J",
{
"x": 1
},
"L"
],
[
{
"y": -0.875,
"x": 1
},
"H"
],
[
{
"y": -0.875
},
"=",
{
"x": 4
},
";",
"'"
],
[
{
"y": -0.375,
"x": 3
},
","
],
[
{
"y": -0.875,
"x": 2
},
"M",
{
"x": 1
},
"."
],
[
{
"y": -0.875,
"x": 1
},
"N"
],
[
{
"y": -0.875,
"x": 5
},
"/",
{
"c": "#909596"
},
"Shift"
],
[
{
"y": -0.375,
"x": 3,
"c": "#c4c8c5"
},
"UP"
],
[
{
"x": 2
},
"LEFT",
"DOWN",
"RIGHT"
]
]

Motivation

I wanted something very close to the ergodox but in a form factor that would work with my laptop. The goals were:

  • Must fit over the keyboard of a 13" macbook pro
  • Ortholinear layout with thumb clusters
  • Avoid shoulder tension by increasing separation

This particular layout has the halves each rotated 15 degrees from vertical; this happens to feel more comfortable for my shoulder separation than the 10 degrees of the Atreus.

The thumb clusters are similar to the ergodox but are a bit more compact; it doesn't require such an extreme thumb stretch when you are reaching from the home row position. Similarly, the key positioning and layout on the halves is very similar to the ergodox, but eliminates a couple of the outlying keys to avoid extreme hand/finger stretches and to reduce the footprint of the board.

Some technical notes

The left half has its origin at the key that would be to the right of the copy key (that's the key to the right of the top right key of the left half). The right half has its origin at the key that is at the top left of the right half (the paste key).

For the thumb clusters, the origins are similar: the origin is the inside corner of the L shape.

Placing the origins in this way makes it simpler to rotate the halves and make sure that they line up: the ry values of the left and right halves should be the same.

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