Open-source project
ColemakMods/mod-dh avatar
ColemakMods/mod-dh

mod-dh is the download hub for Colemak-DH on every platform you might type on

A Colemak mod for more comfortable typing.

864 stars147 forksShellCC0-1.0

At a glance

What is it?
The ColemakMods mod-dh repository collects the layout files, installers and scripts needed to install the Colemak-DH keyboard layout on Windows, Linux, macOS, Android and through cross-platform remappers. It is a distribution point rather than an implementation, and it leans on other projects for the heavy lifting, which is exactly what makes it useful as a starting point.
Who is it for?
Adopt mod-dh when you want to try Colemak-DH without deciding which packaging route suits your machine, since it lists the AutoHotKey scripts, the XKB variants, the Homebrew casks, the KLC files and the Kanata and KMonad configurations in one place. Do not adopt it as a keyboard layout implementation of your own, since the repository ships downloads and pointers rather than a single canonical implementation, and it publishes no tagged releases, so there is no version to pin.
Can I use it commercially?
Yes. CC0-1.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 24 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A hub that points at every packaging route

The repository is titled Colemak Mod-DH Downloads, and that name describes the whole thing. The README opens by sending readers to the Colemak Mod-DH project home page for information about the project, and what follows is a set of download areas, one per platform.

The top level layout matches the sections of the README: android, autohotkey, generate-linux-keymaps, gfx for the images, kanata, klc, kmonad, macOS and xmodmap. A few explanatory lines are all you get for each of them, because the files themselves do the work.

The design is worth understanding before you install anything. Colemak-DH is a keyboard layout, and a layout can be delivered in several incompatible ways: as a set of remapping scripts that intercept keystrokes, as a real system layout that the operating system knows about, as configuration for a remapper that works at the raw device level, or as an application that draws the keys itself. This repository collects the artefacts for each of those routes and tells you which project to use for each one.

The licence is CC0-1.0, which is a public domain dedication rather than a permissive software licence, so there is no attribution requirement on the files themselves. The primary language of the repository is Shell, because the one build script it ships is a shell script.

Linux is the smoothest path: XKB variants and setxkbmap

Linux support is the part of the README with the most detail, and it is the easiest to act on. Colemak-DH exists in recent versions of xkeyboard-config, at least as of version 2.34, which means it may already be installed on your distribution and you need no extra package.

The two commands that matter are these:

sh
setxkbmap us -variant colemak_dh
setxkbmap uk -variant colemak_dh_iso

The first selects the US variant, the second the UK ISO variant. If your distribution ships a recent xkeyboard-config, that is the whole installation.

Three further routes exist for people who want more. The xmodmap folder holds mapping files for xmodmap, which the README describes as the quick way to try Colemak-DH on X11, with the warning that you may need to customise them for your own language or region. Keymap files for the Linux console come from the kbd project, available since version 2.6.2 and included with most distributions. And the generate-linux-keymaps folder holds a generate script you can run yourself to produce keymap files rather than downloading pre-built ones.

There is also the Big Bag route, and it is a different kind of answer. DreymaR's Big Bag, XKB edition, is described as a comprehensive Colemak-DH implementation for Linux with many extra features, and it lives in a forum thread rather than in this repository.

macOS gets a cask and a contributed bundle

The macOS section is short because the platform has fewer options. Colemak-DH mappings have been contributed in the macOS folder of the repository, which is described as an installable bundle.

For anyone with Homebrew, the documented route is two commands:

sh
brew install --cask colemak-dh # Install Colemak-DH
brew install --cask colemak-dhk # Install Colemak-DHk

The README only names the two casks, colemak-dh and colemak-dhk, so the choice between them is made by the command rather than by a configuration file afterwards.

What the README does not do is explain what the cask actually installs on the system, or how to switch between the layouts once they are in place. If you want the full feature set, the Big Bag has an EPKL edition for Windows and an XKB edition for Linux, and the macOS bundle in this repository is the straightforward option rather than the comprehensive one.

Windows has three routes, from quick scripts to real layouts

Windows is where the project historically did its work, and the README offers three different answers.

The fastest way to try Colemak-DH is AutoHotKey. The autohotkey folder holds the scripts, and the README calls this the fastest way to try the layout on Windows. The trade-off is inherent: a script intercepts your keystrokes, so the layout only exists while the script runs, and any application that reads keys in a way the script cannot intercept behaves differently.

The EPKL route is the comprehensive one. DreymaR's Big Bag, EPKL edition, is described as a comprehensive Colemak-DH implementation for Windows with many extra features, hosted on the Colemak forum.

The third route is the system layout. The klc folder contains files for the Microsoft Keyboard Layout Creator, together with generated installers. MSKLC produces a layout that Windows treats as a real keyboard layout, so applications see it the way they see any other layout. That is the route with the most friction at install time and the least surprise afterwards.

EurKEY appears as a separate project that implements EurKEY Colemak-DH and offers Microsoft KLC files, hosted on GitLab. The README mentions it on Windows and again on Linux with XKB mapping files.

The recurring point across all of them is that this repository links to other people's implementations rather than reimplementing them, so the depth of features you get depends on which project you follow.

KMonad and Kanata remap the raw device input

The cross-platform section covers KMonad and Kanata, and it is the most interesting idea in the repository because it works at a different level.

Both programs are described as working in a similar way, allowing manipulation of the raw input from the keyboard device to support arbitrary and advanced remapping in a cross-platform friendly way. The kmonad and kanata folders hold Colemak-DH configurations for them.

The distinction matters. A layout installed through the operating system is a mapping applied after the keyboard has been identified. A remapper like Kanata or KMonad sits below that, on the raw input, so the mapping applies before anything else sees the keys. That buys you the ability to remap things the system layout mechanism cannot express, and it works the same way on Windows, Linux and macOS.

The practical difference between the two programs is in their configuration languages, and the README does not go into that. What it tells you is that configurations for both exist here, so choosing between them is a matter of which one you prefer to configure rather than which one supports the layout.

This route also sidesteps the installation friction of the other two: no system layout to register, no script to keep running.

Android covers physical keyboards, not the on-screen one

The Android section comes with its own caveat, stated in the README as a note. Colemak-DH is designed for touch typing on a physical keyboard and may not be optimal for phone-based software keyboards.

For physical keyboards there is an Android Application Package with source files, allowing you to type Colemak-DH on a physical keyboard connected to an Android device, and the android folder of the repository has the detailed instructions. Shipping an APK with its source in the repository is unusual and useful: it means you can read what the app does before you install it, and build it yourself if you need to.

For on-screen keyboards, the README points to FlorisBoard, an open source soft-keyboard project, and gives its F-Droid listing alongside its source repository. The wording is careful here. The layout was designed for physical keys, so the software keyboard case is supported by a third party rather than by this project.

The android folder, like the others, is a download area rather than a documented subsystem, so treat it as a starting point and read the instructions it contains.

No releases, no version, and a link to the real project page

The repository publishes no tagged releases at all. The last push to the default branch was on 2026-10-03, and the project is not archived, so files do change, but there is no version number to reference in a bug report or a configuration file.

That is consistent with what the repository is: a set of download areas maintained alongside the layout project rather than a released piece of software. The README's own answer to most questions is to go to the Colemak Mod-DH project home page at colemakmods.github.io/mod-dh, which is where the explanation of the layout itself lives. This repository is where the files are.

The licence reinforces that reading. CC0-1.0 dedicates the files to the public domain, which is the sensible choice for layout definitions and configuration files that people are expected to copy and adapt, and it also means the surrounding projects carry their own terms: EPKL, EurKEY, KMonad, Kanata and FlorisBoard are separate efforts with their own licences, and the README is careful to credit each of them rather than absorbing them.

Two housekeeping details are easy to miss. The gfx folder holds the small images the README uses, so a fork can restyle the page without hunting for assets, and the .gitignore and LICENSE files sit beside the README at the top level. Nothing in the repository documents an update policy, so if you depend on one of these configurations, keep a copy.

Editorial conclusion

Adopt mod-dh when you want to try Colemak-DH without deciding which packaging route suits your machine, since it lists the AutoHotKey scripts, the XKB variants, the Homebrew casks, the KLC files and the Kanata and KMonad configurations in one place. Do not adopt it as a keyboard layout implementation of your own, since the repository ships downloads and pointers rather than a single canonical implementation, and it publishes no tagged releases, so there is no version to pin. Before you commit to the layout, read the project home page it links, pick the packaging that matches how your operating system loads layouts, and remember that the Android section exists for physical keyboards while the repository itself notes that the layout targets touch typing on a physical keyboard.

Frequently asked questions

How do I install Colemak-DH on Linux?

Recent versions of xkeyboard-config include Colemak-DH, at least as of 2.34, so setxkbmap us -variant colemak_dh or setxkbmap uk -variant colemak_dh_iso is enough. The repository also offers xmodmap mapping files, console keymaps from the kbd project, and a generate script for building your own keymaps.

How do I install Colemak-DH on macOS?

Homebrew users can run brew install --cask colemak-dh, or brew install --cask colemak-dhk for the second variant. There is also an installable bundle of Colemak-DH mappings contributed in the macOS folder of the repository.

Does Colemak-DH work on Android?

The repository ships an Android Application Package with source files for typing Colemak-DH on a physical keyboard connected to an Android device. For on-screen keyboards the README points to FlorisBoard, and it notes that Colemak-DH was designed for touch typing on a physical keyboard.

What is the difference between the KMonad and Kanata options for Colemak-DH?

Both work at the raw keyboard device input level and support advanced remapping across platforms, and the repository ships Colemak-DH configurations for each in the kmonad and kanata folders. The README does not compare the two programs, so the choice comes down to which configuration you prefer to work with.

Official sources

  1. ColemakMods/mod-dh on GitHub
  2. Issues
  3. License: CC0-1.0
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/colemakmods-mod-dh.svg)](https://hysenlabs.com/projects/colemakmods-mod-dh)

Was this useful?