Skip to content

Instantly share code, notes, and snippets.

@fczuardi
Last active December 20, 2023 13:46
Show Gist options
  • Save fczuardi/98cc2257cc6fb9981651bca9190b2072 to your computer and use it in GitHub Desktop.
Save fczuardi/98cc2257cc6fb9981651bca9190b2072 to your computer and use it in GitHub Desktop.
WIP40
[
{
"name": "WIP40",
"author": "Fabricio Campos Zuardi"
},
[
{
"a": 7
},
"Q",
"W",
"E",
"R",
"T",
"Esc",
"BckSp",
"Y",
"U",
"I",
"O",
"P",
{
"x": 0.5,
"c": "#ffe08d"
},
"Mouse 1",
"Mouse Up",
"Mouse 2",
{
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
"",
"",
"",
"",
{
"c": "#ffe08d",
"g": false
},
"Delete"
],
[
{
"c": "#cccccc"
},
"A",
"S",
"D",
{
"n": true
},
"F",
"G",
"Tab",
"' \"",
"H",
{
"n": true
},
"J",
"K",
"L",
":",
{
"x": 0.5,
"c": "#ffe08d"
},
"Mouse Left",
"Mouse Down",
"Mouse Right",
{
"c": "#cccccc",
"g": true
},
"",
"",
{
"c": "#ffe08d",
"g": false
},
"Print Screen",
{
"c": "#cccccc",
"g": true
},
"",
"",
{
"c": "#ffe08d",
"g": false
},
"Mouse Wheel Left",
"Mouse Wheel Down",
"Mouse Wheel Up",
"Mouse Wheel Right"
],
[
{
"c": "#cccccc",
"t": "#000000\n#005cc7",
"a": 5
},
"\nshift\n\n\n\n\nZ",
{
"t": "#000000",
"a": 7
},
"X",
"C",
"V",
"B",
"PgUp",
"PgDn",
"N",
"M",
", <",
". >",
{
"t": "#000000\n#005cc7",
"a": 5
},
"\nshift\n\n\n\n\n/ ?",
{
"x": 0.5,
"t": "#000000",
"g": true,
"a": 7
},
"",
"",
"",
"",
"",
{
"c": "#ffe08d",
"g": false
},
"Home",
"End",
{
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
""
],
[
{
"t": "#000000\n#005cc7",
"g": false,
"a": 5
},
"\nctrl\n\n\n\n\n` ~",
"\nshift\n\n\n\n\n#",
"\nsuper\n\n\n\n\n$",
"\nralt\n\n\n\n\n= +",
{
"c": "#ffb2d2",
"t": "#000000"
},
"&dArr;\n\n\n\n\n\n- _",
{
"c": "#66d0d0",
"a": 7,
"w": 2
},
"Space",
{
"c": "#ffe08d",
"a": 5
},
"&uArr;\n\n\n\n\n\nEnter",
{
"c": "#cccccc",
"a": 7
},
"&larr;",
"&darr;",
"&uarr;",
"&rarr;",
{
"x": 0.5,
"g": true
},
"",
"",
"",
"",
"",
{
"w": 2
},
"Space",
"",
"",
"",
"",
""
],
[
{
"y": 0.5,
"c": "#66d0d0",
"g": false
},
"Esc",
"!",
"@",
"%",
"^",
"&",
"*",
"(",
")",
"_",
"$",
"Bksp",
{
"x": 0.5,
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
"",
{
"c": "#ffb2d2",
"g": false
},
"7 &",
"8 *",
"9 (",
"-",
"{",
"}",
"|"
],
[
{
"c": "#66d0d0"
},
"Tab",
{
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{
"c": "#66d0d0",
"g": false
},
"Enter",
{
"x": 0.5,
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
"",
{
"c": "#ffb2d2",
"g": false
},
"4 $",
"5 %",
"6 ^",
"+",
"[",
"]",
"\\"
],
[
{
"c": "#66d0d0"
},
"Shift",
{
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{
"c": "#66d0d0",
"g": false
},
"Shift",
{
"x": 0.5,
"c": "#cccccc"
},
"▽",
{
"g": true
},
"",
"",
"",
"",
{
"c": "#ffb2d2",
"g": false
},
"1 !",
"2 @",
"3 #",
"=",
"(",
")",
"*"
],
[
{
"c": "#cccccc",
"g": true
},
"",
"",
"",
"",
"",
{
"w": 2
},
"Space",
"",
"",
"",
"",
"",
{
"x": 0.5,
"g": false
},
"▽",
"▽",
"▽",
{
"g": true
},
"",
"",
{
"c": "#ffb2d2",
"g": false,
"w": 2
},
"0 )",
". >",
"num enter",
{
"c": "#cccccc",
"g": true
},
"",
"",
""
]
]

This is my attempt of a good 40% layout for the CSTC40 PCB.

v1 v0 Screenshot from 2023-12-20 10-45-19

http://www.keyboard-layout-editor.com/#/gists/98cc2257cc6fb9981651bca9190b2072

goals

It should be easy to type:

  • General:
    • Ctrl+C, X, V
    • Ctrl+Z
    • accented characteres with Right Alt as the compose keys: çáàãéâê
  • Programming:
    • camelCase, kebab-case, snake_case words
    • single and double quotes
    • dash, underscore
    • backtick
    • numbers
    • (), [], {}, ()
  • Window Managers:
    • Super+1, 2, 3, etc
    • Super+Pgdup, PgDn
  • Browsers:
    • Ctrl+PgUp, Ctrl+PgDn
  • Vim:
    • Esc
    • Ctrl+P
    • Ctrl+X, A

modifiers on thre home row

Home row keys when hold act as the main modifiers, D: Ctrl and S: Shift on the left side and K: Ctrl, L: Shift on the right. The : key on the right is used for RAlt to be configured as compose key on linux and used for accented leters. The A key on the left is for super(Gui), but requires tap+hold in order to avoid accidental triggering.

why Esc and Bksp on center columns?

I like the idea of split keyboards, a 2-column gap between G and H is what I could do on this compact board.

layers

The keys before and after the spacebar activates layers 1 and 2. Layer 1 contais a numpad and layer 2 symbols of a traditional number row: !@#$%^&*()_+

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