Skip to content
A heavily customized layout for my Ergodox EZ keyboard
C Makefile
Branch: master
Clone or download
naps62 Fixing chatter - credits to @pfac
I was having chatter on both my ergodoxes. At first glance, this seems
to fix it without me having to solder anything
Latest commit 15c942c Aug 1, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
layers Adding images for all layers Nov 1, 2016
COPYING Adding a license Oct 21, 2016
Makefile Adding base layer image Nov 1, 2016 fix compatibility, there are two ergodoxes now Sep 18, 2018
config.h Fixing chatter - credits to @pfac Aug 1, 2019
keymap.c Fixing chatter - credits to @pfac Aug 1, 2019

ErgoDox EZ naps62 Configuration

Table of Contents


I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming.

Key features / changes



Base Layer

Open on

Base layer

  • No MT(mod, kc) keys (modifier when pressed, key when tapped). Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether.
  • Direct access to {}[]. When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this.
  • Layer keys everywhere. I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it.
  • Lang key. This is nothing more than Super-Space combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing.
  • Special chars on the right-most column. I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well.

Coder Layer

Open on

Coder layer

  • The = and - signs where nowhere to be found. - was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer.

Media Layer

Open on

Media layer

  • Better media keys. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones
  • Arrow keys on home row. I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here
  • I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now.



For every key press, the keyboard will output a JSON-formatted line containing the position of the key in the matrix. This allows one to collect usage information, and to build analytics over it, such as a heat map.

Keyboard output can be caught using hid_listen.

This functionality is enabled by default (via KEYLOGGER_ENABLE and AUTOLOG_ENABLE in Makefile).


If you are reading this directly through QMK firmware's repository, you can build this layout with the standard method:

$ make keyboard=ergodox_ez keymap=naps62

If you're reading this from my own repository, then you'll need to checkout this code into QMK's repository. Here's an example:

$ git clone
$ cd qmk_firmware
$ git clone keyboards/ergodox_ez/keymaps/naps62
$ make keyboard=ergodox_ez keymap=naps62


Miguel Palhas

You can’t perform that action at this time.