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/c2d3bcbeb9f3cb9a32ec2b4cd435ff81 to your computer and use it in GitHub Desktop.
Save denilsonsa/c2d3bcbeb9f3cb9a32ec2b4cd435ff81 to your computer and use it in GitHub Desktop.
Denilson's keyboard idea v2.1
[
{
"name": "Denilson's keyboard idea v2.1",
"author": "Denilson",
"pcb": false,
"plate": false
},
[
"Esc",
{
"x": 0.25
},
"F1",
"F2",
"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",
"F10",
"F11",
"F12",
{
"x": 0.25,
"c": "#aaaaaa"
},
"Fn"
],
[
{
"y": -0.75,
"x": 14.75,
"c": "#aaccbb",
"a": 0
},
"Insert\n\n\n\nVol+",
"Home\n\n\n\n⏯",
"PgUp\n\n\n\nPrtSc",
{
"c": "#ccbbaa"
},
"=\n\n\n\nNum 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⌫",
{
"x": 0.25,
"a": 0
},
"Delete\n\n\n\nVol-\n\n⌦",
"End\n\n\n\nMute",
"PgDn\n\n\n\nPause",
{
"c": "#ccbbaa"
},
"/\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¦",
{
"x": 0.25,
"c": "#aabbcc"
},
"7\nHome",
"8\n↑",
"9\nPgUp",
{
"c": "#ccbbaa",
"a": 0
},
"*\n\n\n\nScrl 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⏎",
{
"x": 0.25,
"c": "#aabbcc"
},
"4\n←",
{
"n": true
},
"5",
"6\n→",
{
"c": "#ccbbaa"
},
"-"
],
[
{
"c": "#aaaaaa",
"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⇧",
{
"x": 0.25,
"c": "#aabbcc"
},
"1\nEnd",
"2\n↓",
"3\nPgDn",
{
"c": "#ccbbaa"
},
"+"
],
[
{
"c": "#aaaaaa",
"w": 1.25
},
"Ctrl",
{
"w": 1.25
},
"Win",
{
"w": 1.25
},
"Alt",
{
"c": "#cccccc",
"a": 7,
"w": 5.75
},
"",
{
"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",
{
"x": 1.5,
"c": "#aabbcc"
},
"0\nIns",
{
"c": "#ccbbaa"
},
",",
".\nDel",
{
"c": "#aaccbb"
},
"Enter"
],
[
{
"y": -0.75,
"x": 13.5,
"c": "#cccccc"
},
"↑"
],
[
{
"x": 12.5
},
"←",
"↓",
"→"
]
]

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. Due to space restrictions, I moved Fn to the top of the keyboard.

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.

I've added the NumpadEqual, from Apple keyboards, but I'm not sure I like it. It's not really useful, but I don't want any "special-purpose" key in that location (I want a simple key, so that it can be easily remapped).

In order to make that area a perfect grid, I've shortened both the Zero and Enter keys. To avoid an empty space, I've added Comma between Zero and Decimal. Some keyboards have it (but above the Enter key). This layout ensures the Enter is at the expected location (corner), all the arithmetic operators are together in a column, and number separators (comma and dot) are also together. Overall, everything is in a nice grid, related keys are together, and their layout mostly matches their usual location.

I've also added Print Screen and Pause and media keys as Fn versions of the control pad. The most useful keys (volume control) are closer to the Fn key, to make it easy to press with just one hand.

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 keyboard, 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). There are some important differences:

  • My layout has a complete 4×6 grid of square keys to the right.
  • The arrow keys are offset downwards, so the Shift key has a normal size and location.
  • The control pad layout is preserved by moving some numpad operator keys around.

See also

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