I like to make non-standard keyboard layouts. It can be hard to use a non-standard layout though, especially if it uses different keycap sizes than a standardized layout does.

The most common keycap profiles are sculpted, meaning that each row of keycaps has a slightly different shape. When making a custom layout, you need to account for row difference in caps as well – using a keycap from one row on another may look weird and may feel weird as well, so I try to limit that as much as possible.

I found there isn’t yet an overview as to how many keys per row there are, and what compatibility you can expect from a keycap set, so with this post I try to provide my own overview.

A note on sculpted versus uniform profile

This post specifically applies to sculpted keycaps, meaning that the keys differ in height and profile per row. You can find more about profiles in this keycap profile demonstration by Jacobolus on Geekhack, a Deskthority wiki article on Keyboard Profiles, and on the Reddit r/mechanicalkeyboard wiki Key Profile section.

If your keys have a uniform profile like DSA, XDA or G20 then you can simply use any keycap on any row: the profile is the same for every key. The only thing that would then differ is the text on the keycaps, also known as the legends.

Keyboard layouts

There are various common keycap layouts available. The three most common for full-size keyboards are ANSI 104, ISO 105 and JIS 109. There is more useful info over at the ANSI vs ISO and ANSI vs JIS articles on the Deskthority Wiki, and on the Wikipedia article on Keyboard layouts.

In this post, you’ll find keycap counts for ANSI 104 and ISO 105. I have not included the counts for JIS, since I wasn’t able to find a definitive standardized key layout. It also seems hard to find custom JIS keycap sets, so using custom keycaps with proper legends is a lot harder.

The keys shaded in a purple colour may have a different profile when compared to the others. The F and J keys are often homing, having a bump on them in the form of a dash or having a deeper dish. The number 5 on the numpad is often homing by means of a bump in the form of a dot. The numpad + and Enter keys span across two rows and will have a different profile than other 2u keys. The big enter key on an ISO layout has a unique profile.

ANSI 104

The ANSI 104 layout, post 1995 as defined by the Windows and Menu keys. Made with Keyboard Layout Editor.

The ANSI 104 layout contains the following keycap sizes per row:

Row Count 1 (Function keys, Number row) 1u × 36

2u × 1 2 (Tab, top alpha row) 1u × 18

1.5u × 2 3 (Caps lock, middle alpha row) 1u × 11

1u with homing dash × 2

1u with homing dot × 1

1.75u × 1

2.25u × 1 4 (Shift, Bottom alpha row, Space row) 1u × 18

1.25u × 7

2u × 1

2.25u × 1

2.75u × 1

6.25u × 1 Other 2u × 2 Numpad Plus and Numpad Enter

This yields the following total of 104 keys, by size:

1u × 83

1u with homing dash × 2

1u with homing dot × 1

1.25u × 7

1.5u × 2

1.75u × 1

2u × 4

2.25u × 2

2.75u × 1

6.25u × 1

ISO 105

The ISO 105 layout, made with Keyboard Layout Editor.

Compared to the ANSI layout above, the ISO layout has a larger Enter key, moves the \| key to the left while making the left Shift smaller, and adds a #~ key next to Enter . It also shifts some symbols around on the numrow

The ISO 105 layout contains the following keycap sizes per row:

Row Count 1 (Function keys, Number row) 1u × 36

2u × 1 2 (Tab, top alpha row) 1u × 18

1.5u × 1 3 (Caps lock, middle alpha row) 1u × 12

1u with homing dash × 2

1u with homing dot × 1

1.75u × 1

4 (Shift, Bottom alpha row, Space row) 1u × 19

1.25u × 8

2u × 1

2.75u × 1

6.25u × 1 Other 2u × 2 Numpad Plus and Numpad Enter, 1 × Big Enter key

This yields the following total of 105 keys, by size:

1u × 85

1u with homing dash × 2

1u with homing dot × 1

1.25u × 8

1.5u × 1

1.75u × 1

2u × 4

2.75u × 1

6.25u × 1

Big Enter Key × 1

Alternative layouts

Many custom builds offer slight alternatives of the default ANSI and ISO layouts. Most do try to maintain full compatibility with existing keycap sets, so you generally do not need to worry about keycap compatibility.

Your keyboard may omit the numpad, known as Tenkeyless. Some keycap sets are sold as Tenkeyless sets, meaning you won’t be able to fill a numpad with caps. A tenkeyless board is also known as TKL or as 80%.

A 60% board excludes the numpad, the function row and also the middle navigation block containing the arrows, Home , End and such.

Your keyboard may omit the Windows or GUI key, known as Winkeyless. This won’t necessarily change the rest of the layout, since it simply leaves out two keys.

There are many variants on the JIS layout and it appears that most keycap sets are not compatible with the layout. When purchasing a set for a JIS keyboard, take special care to make sure what you buy provides enough keys in the right rows.

Further reading

Attribution

Featured photo: Dolch by Nick Bair (CC BY-SA 2.0 license).