Skip to content

Instantly share code, notes, and snippets.

@denilsonsa
Last active November 12, 2020 05:56
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 denilsonsa/a3b711bb3c322647d91398941d4e8101 to your computer and use it in GitHub Desktop.
Save denilsonsa/a3b711bb3c322647d91398941d4e8101 to your computer and use it in GitHub Desktop.
Denilson's keyboard idea v2-compact
[
{
"name": "Denilson's keyboard idea v2-compact",
"author": "Denilson"
},
[
"Esc",
{
"x": 0.25
},
"F1",
"F2",
{
"a": 0
},
"F3\n\n\n\nF13",
"F4\n\n\n\nF14",
"F5\n\n\n\nF15",
"F6\n\n\n\nF16",
"F7\n\n\n\nF17",
"F8\n\n\n\nF18",
"F9\n\n\n\nF19",
{
"a": 4
},
"F10",
"F11",
"F12",
{
"x": 0.25,
"c": "#aaccbb"
},
"Delete\n\n\n\n\n\n⌦",
{
"c": "#aabbcc"
},
"7\nHome",
"8\n↑",
"9\nPgUp",
{
"c": "#ccbbaa",
"a": 0
},
"/\n\n\n\nScrl Lk"
],
[
{
"a": 4
},
"~\n`",
{
"c": "#aabbcc"
},
"!\n1\n\n¹\n\n\n\n¡",
"@\n2\n\n²",
"#\n3\n\n³",
"$\n4\n\n¤\n\n\n\n£",
"%\n5\n\n€",
"^\n6\n\n\n\n\n\n¼",
"&\n7\n\n\n\n\n\n½",
"*\n8\n\n\n\n\n\n¾",
"(\n9\n\n‘",
")\n0\n\n’",
{
"c": "#ccbbaa"
},
"_\n-\n\n¥",
"+\n=\n\n×\n\n\n\n÷",
{
"c": "#aaccbb",
"w": 1.5
},
"\n\nBackspace\n\n\n\n\n⌫",
{
"c": "#aabbcc"
},
"4\n←",
{
"n": true
},
"5",
"6\n→",
{
"c": "#ccbbaa",
"a": 0
},
"*\n\n\n\nCaps Lk"
],
[
{
"c": "#aaccbb",
"a": 4,
"w": 1.5
},
"Tab\n\n\n\n\n\n↹",
{
"c": "#cccccc"
},
"Q\n\n\nä\n\n\n\nÄ",
"W\n\n\nå\n\n\n\nÅ",
"E\n\n\né\n\n\n\nÉ",
"R\n\n\në\n\n\n\nË",
"T\n\n\nþ\n\n\n\nÞ",
"Y\n\n\nü\n\n\n\nÜ",
"U\n\n\nú\n\n\n\nÚ",
"I\n\n\ní\n\n\n\nÍ",
"O\n\n\nó\n\n\n\nÓ",
"P\n\n\nö\n\n\n\nÖ",
{
"c": "#ccbbaa"
},
"{\n[\n\n«\n\n\n\n“",
"}\n]\n\n»\n\n\n\n”",
"|\n\\\n\n¬\n\n\n\n¦",
{
"c": "#aabbcc"
},
"1\nEnd",
"2\n↓",
"3\nPgDn",
{
"c": "#ccbbaa",
"a": 0
},
"-\n\n\n\nNum Lk"
],
[
{
"c": "#cc8888",
"a": 7,
"w": 1.75
},
"???",
{
"c": "#cccccc",
"a": 4
},
"A\n\n\ná\n\n\n\nÁ",
"S\n\n\nß\n\n\n\n§",
"D\n\n\nð\n\n\n\nÐ",
{
"n": true
},
"F",
"G",
"H",
{
"n": true
},
"J\n\n\nï\n\n\n\nÏ",
"K\n\n\nœ\n\n\n\nŒ",
"L\n\n\nø\n\n\n\nØ",
{
"c": "#ccbbaa"
},
":\n;\n\n¶\n\n\n\n°",
"\"\n'",
{
"c": "#aaccbb",
"w": 1.75
},
"\n\nEnter\n\n\n\n\n⏎",
{
"c": "#aabbcc"
},
"0\nIns",
{
"c": "#aaccbb"
},
"Insert",
{
"c": "#ccbbaa"
},
".\nDel",
{
"a": 0
},
"+\n\n\n\nEnter"
],
[
{
"c": "#aaaaaa",
"a": 4,
"w": 2.25
},
"Shift\n\n\n\n\n\n⇧",
{
"c": "#cccccc"
},
"Z\n\n\næ\n\n\n\nÆ",
"X\n\n\nœ\n\n\n\nŒ",
"C\n\n\n©\n\n\n\n¢",
"V\n\n\n®",
"B",
"N\n\n\nñ\n\n\n\nÑ",
"M\n\n\nµ",
{
"c": "#ccbbaa"
},
"<\n,\n\nç\n\n\n\nÇ",
">\n.",
"?\n/\n\n¿",
{
"c": "#aaaaaa",
"w": 2.25
},
"\n\nShift\n\n\n\n\n⇧",
{
"c": "#cccccc",
"a": 0
},
"↑\n\n\n\nVol+",
{
"c": "#aaaaaa",
"a": 4
},
"Fn",
{
"c": "#aaccbb",
"a": 0
},
"Home\n\n\n\nMute",
"PgUp\n\n\n\nPrtSc"
],
[
{
"c": "#aaaaaa",
"a": 4,
"w": 1.25
},
"Ctrl",
{
"w": 1.25
},
"Win",
{
"w": 1.25
},
"Alt",
{
"c": "#cccccc",
"a": 7,
"w": 6
},
"",
{
"c": "#aaaaaa",
"a": 4,
"w": 1.25
},
"\n\n\nAltGr",
{
"a": 0,
"w": 1.25
},
"Compose\n\n\n\nMenu",
{
"a": 4,
"w": 1.25
},
"\n\nCtrl",
{
"c": "#cccccc",
"a": 0
},
"←\n\n\n\n⏮",
"↓\n\n\n\nVol-",
"→\n\n\n\n⏭",
{
"c": "#aaccbb"
},
"End\n\n\n\n⏯",
"PgDn\n\n\n\nPause"
]
]

Just a draft, just an idea for now.

I want a smaller keyboard (less wide), but I don't want to give up the numpad. Also, I like the idea of having a grid of keys, because then I can create shortcuts based on the grid itself. (e.g. I want to move/resize a window by pressing Win+Numpad keys.)

On the bottom-left of the main keys, I've added the characters that are displayed in my us keyboard mapping under Linux.

Modifier keys

I would love to get rid of both Num Lock and Caps Lock, but they are still in use in modern computers, so I have to keep them. I've moved them to Fn-combinations, because they are rarely used. Scroll Lock is completely useless (and even missing on most modern keyboards), but I decided to keep it as another Fn-combination, next to the other lock keys.

There are some keys that I cannot compromise: both Shift keys must be large enough and must touch the sides of their areas. The left Ctrl key must be at the bottom-right of the keyboard. On my Linux systems, I use both the AltGr and the Compose keys all the time to input deadkeys and special characters. The Menu is less useful (usually also available to Shift+F10), so I moved it to an Fn combination.

I don't use the right Ctrl very much, and its position has changed on so many laptop keyboards that it's hard to predict. So I'm fine moving it to make room for the arrow keys.

The Fn key is not important enough to be placed on the left side. In fact, putting it on the right side makes it easier to press Fn-combinations with just one hand.

Control pad and Numpad

I merged the control pad with the numpad. Although Insert is less useful, all other keys are still very important. Also, there are some combinations with the Insert key, so it's good to have it as a dedicated key.

In order to make that area a perfect grid, all the numpad keys are square. All the arithmetic operators are together in a column, and due to lack of space the numpad Enter became an Fn-combination (it can be easily replaced by the normal Enter anyway).

I've also added Print Screen and Pause and media keys as Fn-combinations.

The Delete key is just above Backspace, which is already common on some laptop keyboards. The Fn key is closer to the other keys, making it very easy to press them with just one hand. The downside is the isolated Insert key in the middle, but I think I can live with that.

Caps lock

I still have no idea what to do regarding the Caps lock key. My muscle memory is trained to never touch it, and on most keyboards that key is still a useless Caps lock. So… I don't know.

Missing keys

I could add some Fn-combination for some extra keys:

  • Power and Sleep can be useful to quickly put a laptop to sleep/hibernation.
  • BrightnessUp and BrightnessDown are only useful if connected to a laptop.
  • MediaStop, MediaTrackNext, MediaTrackPrevious are missing from most keyboards, and their use is very limited anyway.
  • NumpadParenLeft and NumpadParenRight are interesting, but don't make sense to put as a combination (because then it's the same as Shift+9 and Shift+0).

Similar layouts

I just discovered my layout is very similar to 96 keyboards (more compact) and to 1800 keyboards (with space between the major areas). Then I created this "compact" layout in the hope of reusing some pieces (specially the PCB) from a 96-keyboard.

See also

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