Getting started with Dactyl Manuform and QMK keymaps | David Balatero (2024)


I recently switched from a Kinesis Advantage to a Dactyl Manuform 6x6. I founda lot of guides on building a Dactyl, but most of them glossed over the QMKfirmware part of setting up your keyboard.

In this guide, I’ll give you the basics for getting starting with QMK andflashing your own custom keymap onto the keyboard. The guide is MacOS-centric,so you might need to replace a few steps (like brew install) with youroperating system’s analogs.

At the very end, I’ll share some tips for keeping your keymap in your own Gitrepo without needing to maintain a heavyweight Github fork of QMK.

Choose where to install QMK #

You can configure where to install QMK by setting the QMK_HOME variable. It’shandy to set this up even if you want the default location, so just do it realfast. I’ll choose to install it in ~/.qmk_firmware, but you can put itwherever you want:

# use ~/.zshrc, or whatever shell rc file you use
$ echo "export QMK_HOME=\"$HOME/.qmk_firmware\"" > ~/.bashrc

# update your current running shell
$ source ~/.bashrc

# make sure the variable is now set in your shell
$ echo $QMK_HOME

Setup QMK #

First, install QMK from Homebrew:

$ brew install qmk/qmk/qmk

Next, run the setup. You can probably answer Yes to every question it asks.It will ask you to confirm you want to install QMK to the $QMK_HOME locationyou chose in the prior step.

$ qmk setup

If you ls $QMK_HOME, you should now have a copy of qmk_firmware cloned fromGithub.

Find your Dactyl keyboard’s QMK directory #

QMK has first-class support for the Dactyl Manuform. You’ll need to find thedirectory for your particular flavor. Mine is the 6x6 version, so my configdirectory is located at $QMK_HOME/keyboards/handwired/dactyl_manuform/6x6.

If you have the 5x6, replace the path with 5x6, and so on. Just poke aroundin the dactyl_manuform directory until you find the right one.

Copy the default keymap #

You’ll want to copy the default keymap to your own directory, so you can editit without dirtying up the QMK repo. As always, replace 6x6 with your flavorin all the paths.

Call your new keymap custom, so you know it’s yours:

$ cp $QMK_HOME/keyboards/handwired/dactyl_manuform/6x6/keymaps/default \

Next, copy in the base file. You’ll probably edit this at least onceor twice, and it’s good to have one scoped to your custom keymap directory.

$ cp $QMK_HOME/keyboards/handwired/dactyl_manuform/6x6/ \

You now have a fresh copy of the default keymap inside keymaps/custom, readyto make whatever edits you want.

Optional: Enable Elite-C boards to be flashed #

The default Dactyl Manuform config assumes that Pro Micro controllers are being used. If you happen to be using the Elite-C boards like I do, you’ll need to make one edit to your custom/ file:

# Enable the Elite-C board
BOOTLOADER = atmel-dfu

If you don’t do this, the flashing step will not work.

Compile the firmware .hex file #

At this point, you should practice compiling the .hex file that gets flashedto the keyboard, before making any keymap edits.

Assuming you’re using the handwired/dactyl_manuform/6x6 keyboard and thecustom keymap, you can compile the firmware with this command:

$ qmk compile -kb handwired/dactyl_manuform/6x6 -km custom

This will output a $QMK_HOME/handwired_dactyl_manuform_6x6_custom.hex file,ready to be flashed.

Flash the .hex file to your keyboard with the CLI #

Flashing the hex file is fairly quick once you compile it.

  1. Plug the USB cable into the left half of the Dactyl.
  2. Click the hardware “reset” button on the left half (mine is on the bottom and requires a pen/paperclip to press).
  3. Run qmk flash -kb handwired/dactyl_manuform/6x6 -km custom from the command line.

This should write the new firmware to the left half.

Unplug the cable, and plug it into the right half. Follow the same instructions above.

Unplug the cable, and plug it back into the left half. You’re done!

Your Dactyl will be out of commission and you won’t be able to type commands with it while you’re in the middle of flashing. For this reason, you should install the QMK Toolbox, which is a small GUI program that lets you do the flashing instead.

If you have sight issues or otherwise unable to use the GUI due toaccessibility with the GUI tool, you can also plug in a second cheap keyboardso you can still do the CLI method above when you need to flash new firmware.

Getting started with Dactyl Manuform and QMK keymaps | David Balatero (1)

To use this tool:

  1. Open QMK Toolbox.
  2. Click the Open button.
  3. In the file dialog, browse to $QMK_HOME and select your .hex file.
  4. Plug the USB cable into the left half of the Dactyl.
  5. Click the hardware “reset” button on the left half.
  6. Click the Flash button.

Repeat the last 3 steps for the right half.

Version control your keymaps #

I’m a big proponent of keeping all your hard-won configuration in versioncontrol. This way you’ll never lose it, and you can always revert back to oldversions.

You can really quickly create a Git repo to track your keyboard config on theside, without needing to fork QMK or anything weird like that. This meansupdating QMK is easy as git pull, and you don’t have to contend with Githistories and merges.

Make a Git repo #

mkdir -p ~/code/keymaps
cd ~/code/keymaps
git init .
echo "# My keymaps" >
git add . && git commit -m "First commit"

Move your keymap to the repo #

mv $QMK_HOME/keyboards/handwired/dactyl_manuform/6x6/keymaps/custom \

git add . && git commit -m "Moved custom keymap to Git"

Make a setup script #

I like my repos to have basic setup scripts, so you can clone them on a newcomputer and get back to a working state fast.

cd ~/code/keymaps
touch setup
chmod 755 setup

Then open the setup file you just made in your editor, and add:

#!/usr/bin/env bash

# Gets the full path to this keymaps repo's directory
REPO_DIR="$(realpath "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )")"

function symlink_dactyl_custom_keymap() {
local source_keymap="$REPO_DIR/dactyl_manuform_custom"
local symlink_destination="$QMK_HOME/keyboards/handwired/dactyl_manuform/6x6/keymaps/custom"

if [ ! -d "$symlink_destination" ]; then
echo "Symlinking keymap"
ln -sf "$source_keymap" "$symlink_destination"
echo "Keymap already in place, nothing to do"


Run the setup script with ./setup. There should now be a symbolic link at$QMK_HOME/keyboards/handwired/dactyl_manuform/6x6/keymaps/custom pointing tothe dactyl_manuform_custom directory in this new repo.

Commit this script to Git:

git add setup && git commit -m "Added basic setup script"

Don’t forget to make a new repository on Github/Gitlab/etc and push it up!

Last notes #

If you want to explore my custom keymaps, I have them at a Github repo.

I also had a tough time figuring out which thumb cluster keys were which whensetting up my keymaps. I made an ASCII diagram you can steal, so you neverforget:

// Thumb clusters, match to the comments in the keymaps
// +----+
// +----+ | | +-----+
// | | | 2 | +----+ | | +----+
// | 1 | | | | | +-----+ | 7 | | |
// | | +----+ | 3 | | | | | | 8 |
// +----+ | | +----+ +----+ | 10 | +-----+ | |
// +----+ | | | | | | +----+
// +----+ | 4 | | 9 | +-----+
// | | | | | | +----+
// | 5 | +----+ +----+ | 12 |
// +----++-----+ +----+ | |
// | | | | +----+
// | 6 | |11 |
// +-----+ +----+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

KC_ESC , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 ,
KC_EQUAL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINUS,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSLASH,

// 1 2 7 8
// 3 4 9 10
KC_LALT, _______, _______, MOD_SUPER,
// 5 6 11 12
_______, _______, KC_F1, _______

// etc...

Hope this was helpful!

Getting started with Dactyl Manuform and QMK keymaps | David Balatero (2024)


What size keycaps for Dactyl Manuform? ›

For a Dactyl Manuform, you can use all 1u keys, if you like. Or the top thumb keys can be up to 2U for the inner ones and 1.5U for the outer ones.

Is QMK C or C++? ›

A low-level programming language suitable for system code. Most QMK code is written in C.

Can QMK do macros? ›

One of QMK's most empowering features is the ability to define macro buttons: a button, that when pressed, types a sequence of keys.

How many keycaps do you need for 65? ›

How Many Keys are on a 65% Keyboard? 65% keyboards usually have 67 or 68 keys depending on the manufacturer. Some manufacturers use 1.5u keys between the spacebar and left arrow key instead of using 1u keys.

What keycaps do Tfue use? ›

Tfue Keyboard (Secondary)

The Escape key is replaced by the Dead Man Illusion (Hot Keys Project) keycap. Also the rest of the keycaps are from the Ducky 108 Key PBT Seamless Doubleshot Ultra Violet Keycap Set. Tfue uses Cherry MX Rubber 70A O-Rings to reduce the sound of the Cherry MX Brown switches.

Are thicker keycaps better? ›

The thicker the keycap, the better.

Thick-walled keycaps often feel more solid under the finger and are nicer to type on (up to about 1.5mm).

What is a Dactyl keyboard? ›

First of all, the dactyl manuform is a split keyboard, and the keys are at an angle which further helps your arms be in a natural resting position. It has much fewer keys than a full-sized keyboard, and they are all comfortably accessible without moving your wrists.

Can QMK change RGB? ›

QMK has the ability to control RGB LEDs attached to your keyboard. This is commonly called underglow, due to the LEDs often being mounted on the bottom of the keyboard, producing a nice diffused effect when combined with a translucent case.

Is QMK keyboard good? ›

QMK/VIA is literally the Holy Grail of keyboard customization with infinite possibilities. The VIA configurator allows users to intuitively remap any key on the keyboard, and create numerous macro commands, shortcuts, or key combinations for your keyboard.

Does QMK support per key RGB? ›

RGB matrix is a QMK lighting mode suitable for implementing per-key RGB lighting as well as a combination of per-key RGB and underglow. It is the recommended lighting mode for most purposes. In addition, Vial builds up on QMK RGB Matrix to provide direct RGB control with a script running on the computer.

Is C better than C++ for robotics? ›

In general, C is used if a robotics device has memory limitations and C++ is used to program devices without any memory limitations.

Does Apple use C or C++? ›

The top programming languages at Apple (by job volume) are topped by Python by a significant margin, followed by C++, Java, Objective-C, Swift, Perl (!), and JavaScript.

What microcontrollers does QMK support? ›

QMK runs on any USB-capable AVR or ARM microcontroller with enough flash space - generally 32kB+ for AVR, and 64kB+ for ARM. With significant disabling of features, QMK may just squeeze into 16kB AVR MCUs.

Are macros on PC cheating? ›

"Any and all macros in Fortnite are forms of cheating. Simply put, a macro key is a single-press action that performs a sequence of key or button actions at once.

How many layers can QMK have? ›

You can define more than one layer. When reading through the documentation, you'll find that some QMK advanced keycodes will work with up to 16 layers. This includes both default- and non-base layers.

Does QMK work with Bluetooth? ›

Adafruit BLE SPI Friend

Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI.

Do I need 61 or 88 keys? ›

Most keyboards come with 66, 72, or 88 keys. For a beginner, 66 keys are sufficient for learning to play, and you can play most music on a 72-key instrument. For anyone interested in playing classical piano, however, a full 88 keys are recommended, especially if you plan on one day playing a traditional piano.

How many stabilizers do I need for a full-size keyboard? ›

A full-sized mechanical keyboard needs about 8 stabilizers, one 6.25u sized and seven smaller 2u sized stabilizers.

How many stabilizers for 1800? ›

Total stabilizers for a 60% or TKL keyboard:

A numpad like above would need three 2u stabilizers. If there's a numpad, such as on a full-size (100%) or 1800 layout, you'll also have: 0 key (2u) — 2u stabilizer. Plus key (2u) — 2u stabilizer.

What is the highest quality keycap? ›

For a durable, crisp keycap that doesn't shine over time, dye-sublimated PBT is your best option. PBT the main alternative to ABS, providing a deeper sound signature and a much more durable finish, but not taking well to double-shot legends. Instead, PBT uses dye sublimation, which infuses the dye into the plastic.

What is the most popular keycap profile? ›

Generally, the best keycap style for gaming is the Cherry profile as they are sculpted to be efficient and comfortably pressed. Overall, the keycap profile does not affect the gaming experience that much. If you really want to improve your competitive edge, we recommend that you look into a different switch instead.

Which keycap is the loudest? ›

The Blue switches are the loudest, but if you want a slightly quieter click, the Whites are an excellent option as well. The White switches are also slightly heavier, so if you type with a heavy hand, they can help protect you from bottoming out on each keystroke.

Is there an Elvish keyboard? ›

Adorned with faithfully translated legends and crafted with exceptional quality, our officially licensed MT3 The Lord of the Rings Elvish Keycap Set found a home on countless keyboards across our community.

What is the difference between anapest and dactyl? ›

Dactylic meter is a style of poetic verse in which a metrical foot consists of one stressed beat followed by two unstressed beats. Here, each metrical foot is called a dactyl. Dactylic meter is the exact opposite of anapestic meter, which is why anapestic meter is sometimes referred to as antidactylus.

What is the best keyswitch for typing? ›

The best three switches for typing are Cherry MX Browns, ZealPC Zilents, and Topre switches. Each switch has its differentiating factors and benefits from the others.

Does ATmega328P need bootloader? ›

Asides from the need to use the Atmega328p in standalone mode, flashing the microcontroller with the bootloader may be necessary when you need to replace the microcontroller on your Uno board for instance or when you need to restore a bricked board which no longer allows code uploads.

Does ATmega328P have bootloader? ›

Once your ATmega328P has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial converter (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead.

How do I edit a keymap in QMK? ›

You can edit a QMK keymap online with the QMK Configurator, then build and flash locally to customize the keymap according to your preference. First, open this link to the configurator: and make any changes you like.

What is 101 key enhanced keyboard? ›

A 101-key keyboard (U.S. layout) from IBM that superseded the PC/XT and AT keyboards. Introduced in 1985 as the Model M and standard on IBM's PS/2 computer, the Enhanced keyboard was used for more than a decade and continues to be used in its Windows keyboard variant.

What does F9 shortcut do in Blender? ›

F9 — switch Buttons Window to Editing Context. SHIFT+F9 — (Blender 2.5) switch to Outliner.

What does Ctrl R mean in Blender? ›

Go to the previous Screen. CTRL-RIGHTARROW. Go to the next Screen. CTRL-UPARROW or CTRL-DOWNARROW.

What is the difference between VIA and QMK? ›

QMK with VIA​

VIA is a feature in QMK that lets you change your keymap on your keyboard without needing to reflash firmware. The changes you make using VIA remain persistent on the keyboard, so even when you unplug and replug your keyboard back in, the keymap settings still remain.

What is the best key remapper? ›

If you merely want to remap one key to another, SharpKeys(Opens in a new window) is a simple, open-source program that uses the Windows registry. This makes it the best option for these kinds of one-to-one key remappings.

How do I remap a key with KeyTweak? ›

First, download KeyTweak, a small, easy to use keyboard remapper. Run the installation exe and then go to the start menu, all programs, and run Key Tweak. The KeyTweak window will show an image of the keyboard. Select the key you wish to remap (as you hover over it KeyTweak will reveal its current mapping).

Top Articles
Latest Posts
Article information

Author: Duane Harber

Last Updated:

Views: 6477

Rating: 4 / 5 (51 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Duane Harber

Birthday: 1999-10-17

Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

Phone: +186911129794335

Job: Human Hospitality Planner

Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.