Author Topic: ErgoDox Layouts  (Read 51005 times)

0 Members and 1 Guest are viewing this topic.

Offline Data

  • Posts: 2608
  • Location: Orlando, FL
Re: ErgoDox Layouts
« Reply #50 on: Tue, 09 December 2014, 10:07:18 »
Yeah, transparent might make more sense.  I'll play around with it.  Thanks.

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #51 on: Tue, 09 December 2014, 11:10:47 »
Yeah, transparent might make more sense.  I'll play around with it.  Thanks.

No problem! Let us know how it goes.
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline nomaded

  • Posts: 197
  • Location: Andover, MA
Re: ErgoDox Layouts
« Reply #52 on: Tue, 09 December 2014, 21:00:22 »
This is my current Dvorak-based layout: https://www.massdrop.com/ext/ergodox/?referer=QWFQXZ&hash=a3a33bc0a270c17a7144d34d7d965358.

In Layer 2 do you have center row-right columns as 9 0 or as ( ) ?

I like some of your ideas.

They are mapped as ( ). The Massdrop configurator doesn't have that option, so I put the closest into the layout. The version that I compiled from Ben Blazak's partial-rewrite branch allows to type all the symbols on Layer 2 by holding the layer toggle key with my thumb.

Also, in case you're wondering about Layers 1/3, they behave the same way as Layers 0/2 but the OS is doing the Dvorak translation. So, on computers that have the OS set to EN-US, then I use Layer 0 to type Dvorak. On computers that have the OS set to EN-Dvorak, then I use Layer 1 to type Dvorak. This second configuration is useful where I have a "normal" keyboard also connected.
Dvorak
ErgoDox fullhand (MX Clears) w/Nuclear Green Data SA || Infinity ErgoDox (Zealios 78g tactile) w/SA Retro || Atreus62 (MX Clears) w/Chocolatier || TECK 209 (MX Browns) || TouchStream ST
Kensington Slimblade Trackball || Logitech Cordless Optical Trackman || Apple Magic Trackpad
Current Dvorak-based ErgoDox layout || Current Dvorak-based TECK layout

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #53 on: Wed, 10 December 2014, 04:48:25 »
In Layer 2 do you have center row-right columns as 9 0 or as ( ) ?

I like some of your ideas.

They are mapped as ( ). The Massdrop configurator doesn't have that option, so I put the closest into the layout. The version that I compiled from Ben Blazak's partial-rewrite branch allows to type all the symbols on Layer 2 by holding the layer toggle key with my thumb.

Also, in case you're wondering about Layers 1/3, they behave the same way as Layers 0/2 but the OS is doing the Dvorak translation. So, on computers that have the OS set to EN-US, then I use Layer 0 to type Dvorak. On computers that have the OS set to EN-Dvorak, then I use Layer 1 to type Dvorak. This second configuration is useful where I have a "normal" keyboard also connected.

Why the need to even worry about what the OS in the computer has? You can do it all in the keyboards microcontroller and just send key character events.
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline jalli

  • Posts: 101
  • Location: Toronto, Canada
Re: ErgoDox Layouts
« Reply #54 on: Wed, 10 December 2014, 07:25:00 »
Unfortunately the guys that designed the USB keyboard spec mostly just copied the old PS2 speck which means that we are stuck with scancodes.

Each scancode is then translated to a character depending on the keyboard layout and modifier status by the OS.

Lets say for example that you wanted the scancode that usually results in . and > to instead do . and : the only way to do this is on the OS level.

In Layer 2 do you have center row-right columns as 9 0 or as ( ) ?

I like some of your ideas.

They are mapped as ( ). The Massdrop configurator doesn't have that option, so I put the closest into the layout. The version that I compiled from Ben Blazak's partial-rewrite branch allows to type all the symbols on Layer 2 by holding the layer toggle key with my thumb.

Also, in case you're wondering about Layers 1/3, they behave the same way as Layers 0/2 but the OS is doing the Dvorak translation. So, on computers that have the OS set to EN-US, then I use Layer 0 to type Dvorak. On computers that have the OS set to EN-Dvorak, then I use Layer 1 to type Dvorak. This second configuration is useful where I have a "normal" keyboard also connected.

Why the need to even worry about what the OS in the computer has? You can do it all in the keyboards microcontroller and just send key character events.
Antonia

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #55 on: Wed, 10 December 2014, 07:52:48 »
Unfortunately the guys that designed the USB keyboard spec mostly just copied the old PS2 speck which means that we are stuck with scancodes.

Each scancode is then translated to a character depending on the keyboard layout and modifier status by the OS.

Lets say for example that you wanted the scancode that usually results in . and > to instead do . and : the only way to do this is on the OS level.

You can do that in hardware by using tmk_keyboard. Sure it is more work to set up each key, but once done you can use it in any computer plug-and-play.

For example, you could have the Shift keys be a momentary layer switching key, and in that layer have whatever character assigned to each key. I understand though that because of scancodes to have this working I am assuming all computers would have the same layout, EN-US since it is the most common.

https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md
« Last Edit: Wed, 10 December 2014, 07:55:32 by luisbg »
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline jalli

  • Posts: 101
  • Location: Toronto, Canada
Re: ErgoDox Layouts
« Reply #56 on: Wed, 10 December 2014, 09:24:58 »
The issue is that many of the symbols and keys simply are not available on a "standard US keyboard", on top of that you get into some nasty issues when it comes to sticky keys. While the tmk firmware allows you to send any number of scancodes in a sequence you are still limited by the US keyboard layout of the computer you are connected to which coincidentally is also different depending on if you are talking about Windows, Mac or Linux.

If the people that designed the USB keyboard standard would have had half a brain between them they would have allowed keyboards to send Unicode characters rather than or in addition to scancodes.


Unfortunately the guys that designed the USB keyboard spec mostly just copied the old PS2 speck which means that we are stuck with scancodes.

Each scancode is then translated to a character depending on the keyboard layout and modifier status by the OS.

Lets say for example that you wanted the scancode that usually results in . and > to instead do . and : the only way to do this is on the OS level.

You can do that in hardware by using tmk_keyboard. Sure it is more work to set up each key, but once done you can use it in any computer plug-and-play.

For example, you could have the Shift keys be a momentary layer switching key, and in that layer have whatever character assigned to each key. I understand though that because of scancodes to have this working I am assuming all computers would have the same layout, EN-US since it is the most common.

https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md
Antonia

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #57 on: Wed, 10 December 2014, 09:44:09 »
The issue is that many of the symbols and keys simply are not available on a "standard US keyboard", on top of that you get into some nasty issues when it comes to sticky keys. While the tmk firmware allows you to send any number of scancodes in a sequence you are still limited by the US keyboard layout of the computer you are connected to which coincidentally is also different depending on if you are talking about Windows, Mac or Linux.

If the people that designed the USB keyboard standard would have had half a brain between them they would have allowed keyboards to send Unicode characters rather than or in addition to scancodes.

Interesting! Right, didn't thought about things like é, ç, or € not being in the standard US keyboard layout and that meaning no scancodes unless the layout is changed in the OS.
Very true that the USB keyboard standard is bad bad. There must be some reason for this, something more reasonable than just easy conversion from PS2 to USB. Will investigate.

So if I want to have both €, £, $, Ñ and ñ  in the Layer 1 of my keyboard... what layout do I chose in the OS?
« Last Edit: Wed, 10 December 2014, 09:45:44 by luisbg »
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline jalli

  • Posts: 101
  • Location: Toronto, Canada
Re: ErgoDox Layouts
« Reply #58 on: Wed, 10 December 2014, 10:02:59 »
I searched and discovered that there are very few layouts that have all the characters, and none across platforms.

Linux as ha US International QWERTY layout that's not bad but all the characters are still in silly places
Colemak on most platforms has the characters but they are still badly placed and each platform again has it's own Colemak implementation.

I also changed some optimizations to account for programming languages and non English languages.

https://github.com/antevens/gelatin

Personally I wrote my own layouts for Win/Linux/Mac where I created a custom layout and then implemented for both Programmable keyboards and non programmable. So when you are using a programmable keyboard all the standard ASCII characters are in the right places so console/VMWare and other edge cases still work as they should without having to type in QWERTY.



The issue is that many of the symbols and keys simply are not available on a "standard US keyboard", on top of that you get into some nasty issues when it comes to sticky keys. While the tmk firmware allows you to send any number of scancodes in a sequence you are still limited by the US keyboard layout of the computer you are connected to which coincidentally is also different depending on if you are talking about Windows, Mac or Linux.




If the people that designed the USB keyboard standard would have had half a brain between them they would have allowed keyboards to send Unicode characters rather than or in addition to scancodes.

Interesting! Right, didn't thought about things like é, ç, or € not being in the standard US keyboard layout and that meaning no scancodes unless the layout is changed in the OS.
Very true that the USB keyboard standard is bad bad. There must be some reason for this, something more reasonable than just easy conversion from PS2 to USB. Will investigate.

So if I want to have both €, £, $, Ñ and ñ  in the Layer 1 of my keyboard... what layout do I chose in the OS?
Antonia

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #59 on: Wed, 10 December 2014, 12:00:46 »
I searched and discovered that there are very few layouts that have all the characters, and none across platforms.

Linux as ha US International QWERTY layout that's not bad but all the characters are still in silly places
Colemak on most platforms has the characters but they are still badly placed and each platform again has it's own Colemak implementation.

I also changed some optimizations to account for programming languages and non English languages.

https://github.com/antevens/gelatin

Personally I wrote my own layouts for Win/Linux/Mac where I created a custom layout and then implemented for both Programmable keyboards and non programmable. So when you are using a programmable keyboard all the standard ASCII characters are in the right places so console/VMWare and other edge cases still work as they should without having to type in QWERTY.

For my needs of having €, £, $, Ñ and ñ the QWERTY US International works for me.
http://en.wikipedia.org/wiki/QWERTY#US-International

Need to make the tilde and quote not dead keys, but that isn't too much trouble with tmk_keyboard.

I understand that if you wanted *all* character that would be impossible. Keyboards should switch to Unicode!
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline jalli

  • Posts: 101
  • Location: Toronto, Canada
Re: ErgoDox Layouts
« Reply #60 on: Wed, 10 December 2014, 13:09:05 »
I limited myself to all languages that use the Latin based alphabet, I got so fed up with changing layouts for the different European languages, now I have one layout to rule them all :)


I searched and discovered that there are very few layouts that have all the characters, and none across platforms.

Linux as ha US International QWERTY layout that's not bad but all the characters are still in silly places
Colemak on most platforms has the characters but they are still badly placed and each platform again has it's own Colemak implementation.

I also changed some optimizations to account for programming languages and non English languages.

https://github.com/antevens/gelatin

Personally I wrote my own layouts for Win/Linux/Mac where I created a custom layout and then implemented for both Programmable keyboards and non programmable. So when you are using a programmable keyboard all the standard ASCII characters are in the right places so console/VMWare and other edge cases still work as they should without having to type in QWERTY.

For my needs of having €, £, $, Ñ and ñ the QWERTY US International works for me.
http://en.wikipedia.org/wiki/QWERTY#US-International

Need to make the tilde and quote not dead keys, but that isn't too much trouble with tmk_keyboard.

I understand that if you wanted *all* character that would be impossible. Keyboards should switch to Unicode!
Antonia

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #61 on: Wed, 10 December 2014, 14:09:20 »
I limited myself to all languages that use the Latin based alphabet, I got so fed up with changing layouts for the different European languages, now I have one layout to rule them all :)

Stop typing in so many languages hahahahhaaa
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline nomaded

  • Posts: 197
  • Location: Andover, MA
Re: ErgoDox Layouts
« Reply #62 on: Thu, 11 December 2014, 19:15:46 »
Why the need to even worry about what the OS in the computer has? You can do it all in the keyboards microcontroller and just send key character events.

Unfortunately the guys that designed the USB keyboard spec mostly just copied the old PS2 speck which means that we are stuck with scancodes.

Each scancode is then translated to a character depending on the keyboard layout and modifier status by the OS.

Lets say for example that you wanted the scancode that usually results in . and > to instead do . and : the only way to do this is on the OS level.

Indeed, scancodes is the ultimate problem. I'm a sysadmin by trade, and I mostly use remote access of all sorts to connect to various machines in various places on the planet. Ultimately, most of them expect EN-US as the layout. And between the multitude of OSes I work with, the various remote access apps, translations can get munged along the way. Being able to easily flip back and forth between EN-US and EN-Dvorak with a push of a key makes my life much easier. Also, there are other people that I work with that will access these machines.
Dvorak
ErgoDox fullhand (MX Clears) w/Nuclear Green Data SA || Infinity ErgoDox (Zealios 78g tactile) w/SA Retro || Atreus62 (MX Clears) w/Chocolatier || TECK 209 (MX Browns) || TouchStream ST
Kensington Slimblade Trackball || Logitech Cordless Optical Trackman || Apple Magic Trackpad
Current Dvorak-based ErgoDox layout || Current Dvorak-based TECK layout

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #63 on: Fri, 12 December 2014, 06:06:36 »
Indeed, scancodes is the ultimate problem. I'm a sysadmin by trade, and I mostly use remote access of all sorts to connect to various machines in various places on the planet. Ultimately, most of them expect EN-US as the layout. And between the multitude of OSes I work with, the various remote access apps, translations can get munged along the way. Being able to easily flip back and forth between EN-US and EN-Dvorak with a push of a key makes my life much easier. Also, there are other people that I work with that will access these machines.

I agree. But there is a workaround to the limitations of scan codes; using the power of ErgoDox's Teensy to convert keycode presses to some other ANSI layout scancode.

You can do this with both tmk_keyboard and haata's code. The real limitation is that keycodes are passed as an 8 bit unsigned integer, and most of the values are already taken.

You can see it done in these two examples:
https://github.com/luisbg/tmk_keyboard/blob/buteck/keyboard/ergodox/keymap_buteck.h#L222
https://github.com/luisbg/tmk_keyboard/blob/buteck/keyboard/hhkb_rn42/rn42/rn42_task.c#L234

Map of already taken keycodes:
https://github.com/luisbg/tmk_keyboard/blob/buteck/common/keycode.h#L164

You have the region 0xC0 to 0xDF to create your own, which is 32 values.
https://github.com/luisbg/tmk_keyboard/blob/buteck/common/keycode.h#L426

That said, it is an ugly workaround forced by the legacy mess that is USB -> PS2 -> scancodes. I wonder how much work would it be to write a Linux Kernel Driver for a USB keyboard that just sends unicode characters. Using something like Upwards Double Arrow (U+21d1) for Page Up, and similar for special keys.
http://en.wikipedia.org/wiki/List_of_Unicode_characters
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline jalli

  • Posts: 101
  • Location: Toronto, Canada
Re: ErgoDox Layouts
« Reply #64 on: Fri, 12 December 2014, 07:05:20 »
I think we might have a fun concept for a new project here, design and implement a new proper USB keyboard protocol, native NKRO, Unicode, ohh, how much simpler the world would be.
Antonia

Offline luisbg

  • Posts: 248
  • Location: London
Re: ErgoDox Layouts
« Reply #65 on: Fri, 12 December 2014, 08:15:50 »
I think we might have a fun concept for a new project here, design and implement a new proper USB keyboard protocol, native NKRO, Unicode, ohh, how much simpler the world would be.

Time to undust this from my bookshelf?
http://www.amazon.co.uk/Linux-Device-Drivers-Jonathan-Corbet/dp/0596005903/ref=sr_1_1?s=books&ie=UTF8&qid=1418393540&sr=1-1
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline jalli

  • Posts: 101
  • Location: Toronto, Canada
Re: ErgoDox Layouts
« Reply #66 on: Fri, 12 December 2014, 08:52:09 »
LOL, yeah, it's been years since I did any driver work, the other thing is that for it to catch on we'd have to develop Win/Mac drivers as well, or rather Win and BSD drivers.


I think we might have a fun concept for a new project here, design and implement a new proper USB keyboard protocol, native NKRO, Unicode, ohh, how much simpler the world would be.

Time to undust this from my bookshelf?
http://www.amazon.co.uk/Linux-Device-Drivers-Jonathan-Corbet/dp/0596005903/ref=sr_1_1?s=books&ie=UTF8&qid=1418393540&sr=1-1
Antonia

Offline wackottl

  • Posts: 19
Re: ErgoDox Layouts
« Reply #67 on: Mon, 09 March 2015, 12:44:47 »
I'm starting my hardware build tonight and I'm getting the layout ready while I wait for the parts to arrive.

I use my F-keys more then most and even use Shift-F5, f6, and F8. I want to add a fn and fn lock buttons to turn my numerals into F keys and I'm not quite getting how. 

In fact, I can't seem to figure out how to add the layer keys either because the configuration tool asks to left click and press the key you want, but I have no layer keys on my current board.

Is this something I add with code?

Offline wackottl

  • Posts: 19
Re: ErgoDox Layouts
« Reply #68 on: Tue, 10 March 2015, 09:24:30 »
Ah, I found my problem!

Right clicking wasn't doing anything for me anytime I tried it because I was always using my work PC.  Once I tried it at home I got all the options I couldn't get before.

makes much more sense now.

Offline HughJarss

  • Posts: 6
Re: ErgoDox Layouts
« Reply #69 on: Wed, 06 July 2016, 01:36:50 »
Is there any way I can have dedicated keys for proper opening double quote, closing double quote, etcetera?
As in, what I'd get on the Mac by typing: Alt + [
or: Alt + Shift + [

The Massdrop configurator isn't letting me do this. And I write genre fiction that has a LOT of dialogue.

The reason I need to do this is because smart quotes are not smart, they're stupid and annoying — whenever I type an em-dash then a double quote (which should be closing quote) I get an opening quote. So I have to type quote, quote, go back a character, delete the first one, go forward a character — instead of just typing a closing quote.

Also, when replacing the beginning of a word with an apostrophe, it puts an opening quote instead of a closing one — words like 'em (for them), stuff like that.

So far, I've wasted more hours unsuccessfully researching this than it'll save me in five years! Still, I'm young. Okay, middle aged. Alright, I'm old. But I might live longer than five years, and besides, I need all that time back…

Offline Data

  • Posts: 2608
  • Location: Orlando, FL
Re: ErgoDox Layouts
« Reply #70 on: Wed, 06 July 2016, 09:02:31 »
Is there any way I can have dedicated keys for proper opening double quote, closing double quote, etcetera?
As in, what I'd get on the Mac by typing: Alt + [
or: Alt + Shift + [

The Massdrop configurator isn't letting me do this. And I write genre fiction that has a LOT of dialogue.

The reason I need to do this is because smart quotes are not smart, they're stupid and annoying — whenever I type an em-dash then a double quote (which should be closing quote) I get an opening quote. So I have to type quote, quote, go back a character, delete the first one, go forward a character — instead of just typing a closing quote.

Also, when replacing the beginning of a word with an apostrophe, it puts an opening quote instead of a closing one — words like 'em (for them), stuff like that.

So far, I've wasted more hours unsuccessfully researching this than it'll save me in five years! Still, I'm young. Okay, middle aged. Alright, I'm old. But I might live longer than five years, and besides, I need all that time back…
Sounds like you have two problems.  One with your software behavior - can't help you with that - and one with the configurator.

Unfortunately you can't assign the formal-style quotation marks from the Massdrop Configurator.  The Configurator only allows a limited set of keyboard scan codes.  The left and right double quotes are from the extended Unicode character set (U+201C and U+201D) and are not found among the standard scan codes (more on those here).

It should be possible to program those characters on a Function layer in the Ergodox, but you'll have to build your own firmware for that.  Basically you're programming a macro for Alt+0147 and Alt+0148 on two keys.  If you're not already familiar with computer programming (writing "code"), or very adventurous, then this might be more trouble than it's worth.

Some alternatives:
  • Find a macro pad or keypad with easier macro programming from a GUI
  • Use one of many software solutions to replace the keystrokes for you -- if your Mac already replaces Alt + Shift + [ then that would essentially be the same thing -- AutoHotkey is a popular one
  • Get used to typing Alt+0147 and Alt+0148 a lot
  • Pay someone to build a custom Dox firmware for you
« Last Edit: Wed, 06 July 2016, 09:10:09 by Data »