Troubles with Ergodox EZ Layout

Rockwell

06 Jan 2018, 23:06

Hi.
I got an Ergodox EZ for Christmas, and I have been having trouble getting a good layout on it. I tried using the graphical layout editor on their website, which put the right keys (except Y and Z) and modifier buttons on it. The symbols are a mess, however. I cant figure out why or how its gone wrong. It does say that it only really supports US layout,so it obviously wont be completely identical to the Swiss layout I use. I need French and German letters for my work, and I have read that some characters require certain layouts in the OS to be recognised.

I tried reading in the QMK documentation, but I am none the wiser. I don't understand the connection between signals sent out by the keyboard and how the OS (Linux mint in my case) relate to each other.
I noticed in the Basic keycode section of the QMK docs that, for example, it associates KC 9 with 9 and "(", whereas a Swiss keyboard will produce ")" when you press Shift+9. Downloading the source of a layout on the Ergodox EZ Graphical Configurator will show a lot of these KC elements, which, I suppose, is where my difficulties with symbols comes from. Is there a way to specify for each button on each layer more specifically what the output is when it is pressed with each modifier key like AltGr or Shift?

Also, is there a way to get the graphical configurator to do this?

And why does it change my Y and Z around? It worked on my Macbook I tried it on first.

I typed this on my Ergodox, so please excuse any missing punctuation

davkol

06 Jan 2018, 23:48

derp
Last edited by davkol on 19 Jan 2025, 01:29, edited 1 time in total.

codemonkeymike

07 Jan 2018, 00:16

Did you use a working (non ergodox) keyboard to register the needed keys through the GUI? If the numerical code for say an "umlaut" in Swiss layouts is the same as "q" on a standard English layout then it will show "q" in the GUI editor even though when you load it up on your keyboard it will print "umlaut" on your swiss layout setting on you PC.

Rockwell

07 Jan 2018, 01:08

codemonkeymike wrote: Did you use a working (non ergodox) keyboard to register the needed keys through the GUI? If the numerical code for say an "umlaut" in Swiss layouts is the same as "q" on a standard English layout then it will show "q" in the GUI editor even though when you load it up on your keyboard it will print "umlaut" on your swiss layout setting on you PC.
I selected the letters from the drop-down list, which is the only way to assign inputs as far as I could tell. Are you talking about the Ergodox EZ Editor or another one? I know there is another, but I don't understand how to use it.
davkol wrote: Okay, if you're on GNU/Linux, fire up a console and take a look at showkey output. You'll see only some numerical codes—that's what the host PC gets from the keyboard. Those codes are also specified in the keyboard firmware, but identifiers based on the US QWERTY standard are used instead to make things a bit more legible than throwing only numbers around.
Thanks. It did show me some of those codes. How do I use them to make a layout from scratch?

davkol

07 Jan 2018, 01:22

derp
Last edited by davkol on 19 Jan 2025, 01:30, edited 1 time in total.

Rockwell

07 Jan 2018, 02:35

I am looking at the documentation again, and the example layout from Ergodox EZ website, but I am a little confused. Does each KC stand for a pair of symbols that is invariably connected in the sense that, say, Shift + KC_BSLASH always outputs when the layout is US? Thats the impression i get looking at the punctuation keycodes at the QMK docs.

I also noticed that the way the Layout I found implements the punctuation layer is using special functions in QMK. I think I am starting to get somewhere here. Even if the pairs are linked, using the modifier functions allows one to separate them. There doesnt seem to be one for AltGr, however. Would RightAlt do the same thing when the Layout on the computer is Swiss?

davkol

07 Jan 2018, 10:43

derp
Last edited by davkol on 19 Jan 2025, 01:30, edited 1 time in total.

Rezrex

08 Jan 2018, 16:04

Hi!

While what the others wrote is all technically right, I'll try to translate what they said into layman's terms.

When you press a key on your keyboard, it outputs a so-called 'scancode'. When you use the Ergodox EZ graphical layout editor, you select a symbol from the US English QWERTY layout; however, what goes into the firmware is the corresponding scancode. Thus, your keyboard will only output the expected symbol to your screen if you select US English layout in your OS (or if that particular key corresponds to the same symbol in US English and your native layout).

So, to use the editor, you should print out (for easier review) the physical representation of the US English and your native layout, select the symbol you want to use on a particular key from the image of your native layout, then search for the same key on the US English layout and input the symbol on that key into the Ergodox editor.

To illustrate, I will use the Hungarian layout.

HUN:

Image

US EN:

Image

So, if I want my (imaginary) Ergodox EZ to output the "á" symbol, in the Ergodox EZ editor I would select the key and chose the <<Punctuation ' >> option since the á key of the Hungarian layout corresponds to the ' key of the US layout (meaning, they are at the same place so their scancode is the same).

Similarly, for ű, I would select <<Punctuation \>> (yes, these are not at the same place on the above image but that's because of the differences between the ANSI and ISO physical layouts; I don't want to confuse you so just accept that what is the rightmost key above the Enter on the US layout is, in fact, the same key you see on the Hungarian layout as the rightmost key next to the Enter in the middle row).

Now, if I would upload this firmware to my (again, imaginary :D ) Ergodox EZ, it would output á if my OS is set to the Hungarian layout, but it would output ' if my OS is set to the US English layout. Similarly, if your native layout is QWERTZ not QWERTY, on your native layout the Z and Y will be opposite of what you see in the Ergodox EZ editor.

I hope that I could help you and didn't confuse you further ;)

Rockwell

09 Jan 2018, 23:44

davkol wrote: The keyboard controller [firmware] doesn't know anything about symbols, when it's following the basic USB HID protocol. And it doesn't know anything about symbol layers either (those accessed via Shift or AltGr).

All you can do is send macros that correspond to pressing a given modifier, then a key and finally releasing the modifier. The result (generated character) is dependent on your OS' active keymap, though, because the OS is responsible for generating those characters. QMK has means to implement such macros for Unicode (outside your keymap) too, but as you can see in the linked article, those macros/hotkeys work only when you're running the right software on your host computer.
Thanks for your help, davkol. I will be using what I've learned writing my new keymap

Rezrex wrote: Hi!

While what the others wrote is all technically right, I'll try to translate what they said into layman's terms.

When you press a key on your keyboard, it outputs a so-called 'scancode'. When you use the Ergodox EZ graphical layout editor, you select a symbol from the US English QWERTY layout; however, what goes into the firmware is the corresponding scancode. Thus, your keyboard will only output the expected symbol to your screen if you select US English layout in your OS (or if that particular key corresponds to the same symbol in US English and your native layout).

So, to use the editor, you should print out (for easier review) the physical representation of the US English and your native layout, select the symbol you want to use on a particular key from the image of your native layout, then search for the same key on the US English layout and input the symbol on that key into the Ergodox editor.

To illustrate, I will use the Hungarian layout.

So, if I want my (imaginary) Ergodox EZ to output the "á" symbol, in the Ergodox EZ editor I would select the key and chose the <<Punctuation ' >> option since the á key of the Hungarian layout corresponds to the ' key of the US layout (meaning, they are at the same place so their scancode is the same).

Similarly, for ű, I would select <<Punctuation \>> (yes, these are not at the same place on the above image but that's because of the differences between the ANSI and ISO physical layouts; I don't want to confuse you so just accept that what is the rightmost key above the Enter on the US layout is, in fact, the same key you see on the Hungarian layout as the rightmost key next to the Enter in the middle row).

Now, if I would upload this firmware to my (again, imaginary :D ) Ergodox EZ, it would output á if my OS is set to the Hungarian layout, but it would output ' if my OS is set to the US English layout. Similarly, if your native layout is QWERTZ not QWERTY, on your native layout the Z and Y will be opposite of what you see in the Ergodox EZ editor.

I hope that I could help you and didn't confuse you further ;)
I don't feel more confused, you've explained it well and descriptively. I did find a useful graphic showing the keycodes for ANSI and ISO keyboards on the GMK docs, I will be writing a keymap, and if I have any more issues, I will post again. Thanks for your reply, it was helpful.

Post Reply

Return to “Keyboards”