Dygma Raise Keyboard Reflections Part 1

Image for post
Image for post
My Dygma Raise Keyboard.

Introduction

I have been using Microsoft Natural Keyboard 4000 for several years and it has served my programming and writing needs pretty well with my Ubuntu laptop .Xkeymap configurations (more about that later). But last spring I followed Koodiklinikka Slack’s “nappaimistot” (“keyboards” in English) channel in order to read experiences regarding mechanical keyboards. There I read some experiences regarding the Dygma Raise Keyboard. I ordered the Dygma Raise keyboard while the company was manufacturing the second batch of the keyboard. I ordered the keyboard in May and I got the keyboard a couple of days ago. Now that I have spent a couple of days configuring the keyboard and using it I thought that it might be beneficial for other programmers to write a bit about my experiences regarding the Dygma Raise - because I fell in love with it immediately.

Build Quality

The build quality of the Dygma Raise Keyboard seems to be really good. The chassis is very rigid and sturdy. All keys feel very consistent and there is an overall feeling of premium quality when using the keyboard.

Ergonomics

You can split the keyboard into two halves and place the halves on your table as you wish. I keep some space between the halves and also have a small angle between the halves so that my shoulders and wrists are in a pretty natural position on my table. I also have a large elbow support on my table. All these together provide pretty good ergonomics for my programming. Not to talk about the ergonomics regarding the key presses but more about that in the following chapters. Dygma provides in its website a more detailed description regarding the Dygma Raise Ergonomics.

Led Lights

I haven’t found any real use for the various colors — I do programming. I type with all my ten fingers — I took a typing lesson in the Finnish Elementary school about 40 years ago and has been typing with 10 fingers ever since — so, I don’t look at my keyboard at all when typing. But the colors are kind of nice anyway. Maybe gamers use these colors for some real tasks or they just “look cool”, I don’t know. Anyway, I don’t mind the colors. I did use the Bezecor to categorize certain buttons with consistent colors (see the two pictures below). And it is also kind of nice that the Shift to 1 button also changes the color in the frame of the halves - a visual aid that we are now in the next layer.

Layout

One of the most important reasons to buy Dygma Raise was that I could order it with the Nordic layout. There are other split keyboards in the market but some of them provided just ANSI layout, and the rest didn’t provide the kind of programmability of the keyboard like Dygma Raise. The keyboard layout itself is really important to me. There are certain special characters in the Nordic languages (e.g. Ä and Ö) and I want those keys to be in their right places so that I can write Finnish text fluently both using the laptop keyboard and my external keyboard and I don’t need to remember that those letters are in different positions in different keyboards. There are many different ANSI and ISO layouts available for the Dygma Raise - consult the Dygma Raise website for the options.

Switches

Dygma Raise is a mechanical keyboard and you can order the kind of mechanical switches you like. Dygma Raise is my first mechanical keyboard for recent years so I ordered rather standard switches not to have too extreme experience to start with: Cherry MX Brown. Dygma Raise provides a good introduction to the mechanical switches - I really recommend reading it before placing the order for your Dygma Raise. All Dygma Raise switches are swappable so you can change the switches later on if you think that you want to experiment with different switches. I kind of like the “clicky” touch of the Cherry MX Brown switches but I might next try a bit “lighter” touch (but with a tactile feeling with a clear click sound).

My Linux Keymap

Before understanding how I configured Dygma Raise I need to tell the reader a bit about my Linux key mapping. For a programmer, the CapsLock key is a totally useless key. In the Nordic layout the various parentheses ( {, [, [, }) are in the first row behind 7, 8, 9 and 0 keys when you press Alt-Gr key at the same time. The problem is that this Alt-Gr key is in a really awkward position in the last row behind your right thumb - practically impossible to press this Alt-Gr and 7, 8, 9 and 0 keys without getting a Carpal Tunnel Syndrome in your wrists after a few years. Therefore many Nordic programmers tend to configure these special parentheses in new positions. My solution was to keep the special character keys where they are but to configure CapsLock key as Alt-Gr key since hitting the CapsLock key with my left little finger and at the same time hitting 7, 8, 9 and 0 keys with my right hand fingers to produce {, [, [, } was relatively easy. Since I could now configure keys with CapsLock for special functions, I also configured I, J, K and L keys to be arrow keys with CapsLock, D to be delete with CapsLock (as Ctrl+D is delete in Emacs) etc.

A screenshot regarding some of these configurations (.Xkeymap file):

Image for post
Image for post

Configuring Dygma Raise: The Bazecor Software

Ok, let’s go back to Dygma Raise and how my Linux Keymap works now with Dygma Raise. It turned out that Linux Keymap and Dygma Raise is a match made in heaven.

The configurability of the Dygma Raise keyboard is just superb. This is something that I’m just beginning to realize after configuring the keyboard for a couple of days. You can use your imagination as much as you like and it seems that Dygma does not restrict you in any way.

Every key is programmable. And there are ten layers and in all of those layers, you can program every key or configure the key to be “transparent” — meaning it will function as the key in the previous layer. I have configured two layers using a rule of thumb that I want all special characters to be as near the base row (ASDF & JKLÖ) where I keep my fingers while resting.

One very neat feature is also that there are eight “thumb keys” instead of one big spacebar. You really should give some thought on how to use these thumb keys since they can be really powerful. Let’s start with the thumb keys. Below you can see my Layer 0 configuration in the Bazecor application:

I have played classical guitar some 20 years and now that I look at that picture I realize something regarding the hotkeys I tend to use. Like playing the guitar one has different functions for the left hand and for the right hand: left hand fingers press the strings in various positions on the guitar neck, and right hand fingers pick the strings. The same way I tend to use my keyboard: I press some combination of the Shift, Ctrl, Alt and CapsLock (remember: my CapsLock is the Alt-Gr key) with my left hand fingers, and then I click some key on the right side of the keyboard with my right hand fingers. Therefore I configured my new Dygma Raise so that I have all relevant modifiers in the lefthand side four thumb keys: Alt, Shift, Ctrl and Shift-to-1. Some examples of how I use these combinations may shed some light to the importance of these new left hand side thumb keys. I program Clojure and I use either IntelliJ IDEA with excellent Cursive plugin or Emacs editor with Cider plugin (mostly IDEA/Cursive, though). In Clojure you program quite a lot with REPL and to make the Clojure programming workflow fluent one needs good hotkeys e.g. to reload stuff into the REPL, send namespace to the REPL for evaluation, evaluate certain S-expression in the Clojure code or edit the code, e.g. kill S-expression, slurp/barf, etc. I’m not going to explain the meaning of those manipulations but let’s just say that I do a lot of them when programming Clojure and there needs to be fast hotkeys for them. Some examples of those hotkeys:

  • Kill text from cursor position till the end of line (Emacs kill): Ctrl+K. Easy, now I don’t stretch my left hand little finger to the Ctrl key: I have Ctrl as a thumb key on both sides.
  • Kill S-expression in Clojure code: Shift+Ctrl+K. Adding Shift since it is logical because it´s kind of kill like the previous one. Now very easy with Dygma Raise: Just press with left hand thumb the lower thumb keys (Left Shift and Left Ctrl - at the same time) and with right hand middle finger press K. This used to be a bit awkward before Dygma: I had to press the left side Shift and Ctrl keys with my left hand little finger…
  • Send Clojure form for evaluation to REPL: Alt+L: Now very easy: Left Alt with left hand thumb and L with right hand ring finger.
  • Move cursor to right: CapsLock+L (remember: CapsLock is Alt-Gr and I have configured I, J, K and L as arrow keys).
  • Because move the cursor to right is CapsLock+L it is logical that Slurping right is CapsLock+Alt+L: easy, left hand: just press Alt with thumb and CapsLock with little finger.
  • Send text to Slack: Ctrl+Enter: Now very easy: left hand thumb and right hand thumb in the lower thumb keys.

And so on, and so on… I could write a whole series of blog posts regarding these hotkeys — I have a bunch of them for various IDEs, editors, tools, and terminals, but I guess you got the point. I now realize that I play my keyboard a bit like the guitar: both hands tend to have certain functions: I use modifiers with my left hand and give the actual commands with my right hand. (With some exceptions, like CapsLock+D for delete, but that´s because it is logical to do so, since Ctrl+D is delete in emacs and CapsLock and D are so close to each other that it is easy to do so…).

Ok, let’s move on. What’s that Orange Shift to 1 thumb button in the left upper row? It’s the beauty of Dygma Raise: You can shift to the next layer when pressing this key (you can also configure some key so that you move to the next layer instead of activating it only when this key is pressed, but it is better for my personal workflow to have it as “shift”). Let’s see what´s there in the Layer 1:

Image for post
Image for post

In this layer I have some Media controllers on the left side just to make playing Spotify easier and also to control volume in meetings: I.e. I press the Shift to 1 with my left hand side thumb and then some media buttons also with my left hand side. This is a bit awkward since I have to use the same hand but as a guitarist, I have pretty flexible fingers and I don’t use these buttons that often. But then the actual beef: Why do I have the numbers on the right hand side in two rows?. The actual reason is not the numbers per se but what’s behind the numbers. The most important row in this layer is the resting position row J, K, L, Ö => 8, 9, 0, +. The reason is that I have mapped the various parentheses behind these numbers, for example: { => Alt-Gr+7, and because Alt-Gr is Caps-Lock it is Caps-Lock+7, and because in Layer 0 I can shift to the next Layer 1 with the left hand side button key, and the number 7 is not in the upper row in this layer but in the resting row, it is very easy to get { => Shift to 1+CapsLock with my left hand fingers (thumb and little finger, I use this very often so it is very easy for me) + H (layer 0) (which is 7 in layer 1). Therefore:

  • { => Shift to 1+CapsLock+H
  • [ => Shift to 1+CapsLock+J
  • ] => Shift to 1+CapsLock+K
  • } => Shift to 1+CapsLock+L
  • \ => Shift to 1+CapsLock+Ö
  • ( => Shift to 1+Shift+J
  • ) => Shift to 1+Shift+K

Every programmer knows that various parentheses are very much used in any programming language, and Clojure is no exception. On the contrary, you use parentheses very much in Clojure programming: every S-expression needs to be in parenthesis, all literal vectors are inside brackets, all literal maps are inside curly braces, etc. Now with Dygma, I can write all of these parentheses in my right hand resting position.

How about the upper number row with smaller numbers. The special characters:

  • ! => Shift to 1+Shift+U
  • " => Shift to 1+Shift+I
  • # => Shift to 1+Shift+O
  • % => Shift to 1+Shift+Å
  • & => Shift to 1+Shift+~
  • @ => Shift to 1+CapsLock+I

So, just the same characters behind those numbers in the Nordic keyboard layout but now just added to the right hand side near the resting row for easier access.

And Esc is now Shift to 1+CapsLock+Y, what a relief. Since e.g. in IntelliJ IDEA when going to the embedded terminal I haven’t found any other way to return to the editor than clicking Esc twice and Esc used to be so far away… not anymore with Dygma.

When I read this article for proof-reading purposes I also realized that I tend to prefer combinations with near the resting positions (like the Shift to 1+CapsLock+Y I told earlier) over just one keypress but farther away (like Esc in the upper left side of the keyboard). This is personal, of course. Maybe the reason is that I write with all 10 fingers and it is faster to write when you don’t have to stretch your fingers far away.

What Next?

Who knows? Maybe I realize that there is a way to make my new Dygma Keyboard even more ergonomic with some new astounding realization how to configure it using the Bazecor.

One thing that I have been thinking about with the split keyboard is to use a trackpad instead of the mouse — I could use my thumbs with a trackpad positioned between the keyboard halves now that I have space for it there — thanks to Dygma Raise split keyboard.

Conclusions

If you are a programmer and you are looking for a top-quality mechanical keyboard with absolute configurability — look no further: you want Dygma Raise. With Dygma Raise your imagination is your limit on how you can configure your new keyboard.

The writer is working at Metosin using Clojure in cloud projects. If you are interested to start a Clojure project in Finland or you are interested to get Clojure training in Finland you can contact me by sending email to my Metosin email address or contact me via LinkedIn.

Kari Marttila

The article was first published in https://www.karimarttila.fi/

Written by

I’m a Software architect and developer. Currently implementing systems on AWS / GCP / Azure / Docker / Kubernetes using Java, Python, Go and Clojure.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store