Creating the Perfect Keyboard Layout with Keyboard Layout Editor

Disclosure: Content linked in this article may be affiliate links. All that means is that I may earn a few pennies if you use the link and make a purchase – it helps me keep this site up 🙂 This post is not sponsored directly by these companies and only contains products that we genuinely love and recommend for any keyboard enthusiast. So thanks in advance if you choose to click!

Keyboard Layout Editor (KLE) (developed by Ian Prest and other contributors), is the best starting point for any keyboard layout planning. It has full customization options and seamless integration with the other applications that are used in creating custom keyboard firmware and parts. It is also the primary tool for layout and design planning used in my Complete Handwired Keyboard Guide – Stax KB Kits Available (COMING SOON! Please subscribe to my email list for updates ?).

Before we dive into the tool, I would highly recommend that you create a GitHub account to save your designs and drafts; else, you also have the option of saving custom links for your designs as well although I have found that this is not the most reliable method.

As a sneak peak to the design creation of Stax KB (COMING SOON), I will be sharing some tips on using KLE and provide a behind-the-scenes look into what goes into creating a keyboard from start to idea to fruition.

Here is a link to KLE for you to follow along: http://www.keyboard-layout-editor.com

Getting Started with Keyboard Layout Editor

When brainstorming a layout for Stax KB I wanted a compact layout, similar to HHKB but also with extra hotkeys and arrow keys. For the most flexibility, I started with the 60% Default Layout preset, built into KLE:

60% Default Layout preset
ISO 60% Keyboard layout
ISO 60%

Starting with this 60% layout lets us start with some of the most standard keycap sizes which will become important later on when you purchase / choose your keycap sets (The worst that could happen is if you spend big money on a keycap set that doesn’t fit! Always plan ahead). By retaining the key sizes from a default 60% layout, you can spare yourself the trouble of finding compatible keys or having to use key legends that don’t match the key stroke. If your layout uses non-standard modifiers (CTRL, WIN, ALT, Menu, etc) key sizes, it could prove difficult or costly to find a matching set and you may need to end up using blank keys (which can also get quiet expensive).

For my design, I wanted an optimized compact layout with custom layers. The below image will show the default keymap that I will provide in the Stax KB kit. It is roughly the same keymap as my 40% keyboards as I have gotten used to it and it works perfectly for my needs.

default keymap of Stax KB Kit

WTH… Where is the enter key? – A quick explanation for the split spacebar.

Here is a quick note on the thought process behind the design:

After using optimized / compact keyboards for a while, I have gotten used to using a split spacebar with the left side being the enter key and layer toggle. To use the same keys to activate the blue legends, you simply tap and hold the Enter key and while it is held down, the keys will respond with the inputs indicated by the blue legends. This is similar to Fn keys on laptops or you can think of it as a “shift” key but instead of capital letters being on the shifted layer, you get the blue inputs. Optimized keyboard layouts minimize hand travel and theoretically should reduce your typing errors since you move your hands off of the default position less often – referred to as reducing hand travel.

The QWERTY row has numbers 1-9 which is fairly standard for compact layouts. I do like the flexibility of a number layer along the QWERT row but also work much more efficiently with a numpad (when working with numbers). Here are the layer keys that make up the makeshift numpad:

Querty row with number layer

 

You’ll notice that after moving just a few things around, you’ll see something similar to a standard numpad but with the main difference being that you don’t need to move your hands from the default position much at all:

Numpad configuration of keyboard layout
Numpad

The top row of numbers (1234 5678 90-=) is mostly their for the typical guest-who-has-no-idea-how-to-use-my-keyboard and for function keys which are used less often.

Keyboard Layout Editor Features & Tips

Keyboard Layout Editor really includes all of the tools you need for comprehensive planning. You can even modify the color and placement of individual legends and keys. Here we’ll go over each of the settings tabs for the tool. Note that a lot of these features are not absolutely necessary for planning out your keyboard and you really only need the layout and legends for planning but I will go over some other important features that may help you plan out your custom keyboard.

Properties

On the Properties tab, you will be able to configure all settings involving the look of an individual key. To modify a key, simply click on it and the fields in this tab will update. There will also be a red outline on the currently selected key as shown in the example below. You have 12 “zones” where you can place your legends with the ability to change the color of each individual legend you can see these zones marked with an “x” here:

Zone marked with an X on a keycap

Use different legend colors to represent different layers if you are creating a compact layout. This will help you easily visualize which layer keys activate which inputs.

Besides legend customization options, you can also manually adjust the position and size of each key. Note that KLE uses a standard 1u keycap as the unit of measurement so if you adjust a keycap size to Width: 2 | Height: 1, you will get a key that is 2 single keycaps wide and 1 keycap long. Here is a list of standard keycap sizes for a 60% keyboard – these would typically come with base keycap sets without having to purchase additional special sized modifier packs.

  • Backspace: 2u
  • Tab: 1.5u
  • “\”: 1.5u
  • Caps Lock: 1.75u
  • Enter: 2.25u
  • Shift: 1.75u (left), 2.75u (right)
  • Ctrl, Win (Meta), Alt: 1.25u
  • Space Bar: 6.25u (6u may also be common, always check before buying!)

The bottom layer of modifiers (Ctrl, Win (Meta), Alt, Fn) can always very between keyboards so it is VERY important to check the keycap set you are buying for compatibility. Most “full” keycap sets will include extra sets of modifier keys for this reason.

There are also other options that aren’t as useful unless you are really planning to design something unique. You have options to change the Rotation, Note the Keycap Profile and Row (planning purposes), and select switch and miscellaneous options. Rotation would be the most useful of these options if you intend to design a split ergonomic keyboard layout like the lauded TGR Alice keyboard designed by Yuk Tsi. Here is an example of what I mean:

Keyboard Properties

This section is really just for writing notes and customizing the background so you can have a better visual idea of how your keyboard will look. KLE offers the tools for you to see what your complete finished product will look like and you can play with these settings to do that. However, they are not absolutely necessary for building the actual keyboard and you can safely skip this tab. Notes are useful if you are working on a saved layout for multiple days and want to leave notes on ideas you haven’t executed yet.

If you foresee yourself having different revisions, I would suggest logging in to GitHub through KLE (create an account if you have to) and naming your keyboard on this tab so you can easily go back to it .

Custom Styles

Again, an optional feature that is mostly for advanced users (more advanced than me anyway). This section allows you to use CCS to use custom fonts and styles.

<\> Raw data

This is the most useful tab in this tool if you are looking to create your own physical keyboard from scratch. The code generated here can be used in combination with other online tools to generate physical keyboard parts and firmware. This is the code behind all of the key positions, sizes, colors and labels that have been configured. Unless you really know what you are doing, I would suggest not to manually modify this data.

Summary Tab

The quantity of each key size and total mechanical keyboard switches you will need are conveniently summarized here. You can use this tab as a quick reference to check to see if the layout is compatible with keycap sets that you have already or plan to use.

Tools Tab

This tab is mainly used to quickly align the legends of each key. Note that if no individual or set of keys are selected, it will align ALL legends. The Undo button at the top of this page will be useful here if you were to accidentally align the legends incorrectly.

You can also quickly move the legends on a selected set of keys with the move legends tool. Simply select the position you want to move, then select the position you want to move them to:

Move/Align legends of each key

Miscellaneous Tips

Selecting Groups of Keys with the Selection tool:

  • Clicking and dragging in the visual section of the tool will create a red dotted box, you can use this to select groups of keycaps.
  • The selection box will only select the keycaps completely inside of the box. So, if a keycap is cut off, it will not be selected:
Selecting groups of keycaps with the selection tool
This will result in the middle two keycaps being selected only.

You can also select multiple individual keys that are not clustered together by holding down CTRL and clicking on the keycaps you want to select.

To select all keys from one key to another, select a key then click the last key in the range you want to select while holding down the Shift key. This will select the first, last, and all keys in between. If you select keys between different rows, it will automatically highlight the rows in between.

That just about sums up all the useful tips and tricks I can think of that helped me design and create a custom keyboard from scratch with KLE. Please feel free to contact me if you have any more useful tips that can be added here!