TL;DR
Use kanata when your qmk keyboard is not around.

Introduction

I have a qmk keyboard bought from keebio (note: highly recommend!):

keebio1 keebio2 keebio3

However, sometimes I’m on the go, and I’m forced to use my laptop keyboard. After being spoiled by qmk’s insane customizability, I couldn’t go back to a regular keyboard. I found kanata and kmonad and they could simulate most of my qmk experience.

Why kanata over kmonad?

The exact reason Why I built and use kanata. When using kmonad, I need to fully press the modifiers much longer for them to be registered. A slight tap is not registered. Like #466, “when I type capital F, 90% of times it comes out as lowercase f.” On the other hand, kanata doesn’t have this problem.

Getting Started

  1. Install kanata:
pacman -Syu kanata
  1. Check out my kanata.kbd

If you happen to be using a ThinkPad keyboard like below:

thinkpad_keyboard

You may directly clone my kanata.kbd to get a feel for what kanata can do:

# note: read it before running to see what it does
curl -o ~/.config/kanata/kanata.kbd https://gist.githubusercontent.com/kohane27/f2ea851af5bb2bae7d2f3c411d1181ef/raw/47246f4021084f613486b9f2d7cfeae3b947202c/kbd
Warning
The point is, of course, not to blindly copy somebody’s config, but to serve as a starting point. I put off kanata (or kmonad for that matter) for a long time because of their daunting documentation.
  1. run kanata:
$ cd ~/.config/kanata/
$ kanata

What’s Changed

  1. home-row mod
  2. CapsLock becomes Ctrl
  3. space acts as the super layer switcher: single tap emits space but holding it and press a will become Super+1 (to switch between workspaces)
  4. Left Alt acts as the alt layer switcher: single tap emits alt but holding it and press a will become Alt+1 (to switch between tmux windows)

Tips

  1. Create a systemd unit for kanata
  2. Read Configuration guide for more details
  3. Since kanata and kmonad are pretty interchangeable, go to kmonad-contrib to look for inspiration

Conclusion

Using qmk keyboards made me realize how stupid the default keyboard layout is and kanata helps alleviate some of its problems. Thank you kanata!