Switch between ANSI and ISO layouts (Keyman Developer)

Hello,

I’m working with Keyman Developer 18, and whenever I create a new keyboard it’s defaulting to the ISO enter key in my layout view. I need the smaller ANSI/US enter key, but cannot figure out where to change that setting.

Thanks!

Welcome to the community site @Michael_Wynne,

Are you referring to this keyboard layout? Unfortunately, I don’t think it can be changed.

Thanks @nyny, yes that layout. Do you mean it can’t be changed after keyboard has been started, or can’t be changed at all? No problem if I have to start fresh, but I don’t see where to set it at all when creating a new project or new keyboard within a project.

I don’t have permissions here to upload a screenshot, but my layout is different.

Hi Michael,
Only you as the keyboard developer see that view. The On-screen keyboard can be seen by desktop users, but the OSK is the least customizable part of Keyman. Unfortunately, the on-screen keyboard does not change to reflect ISO or ANSI positions.

I maintain one keyboard that is compatible with US Qwerty (ANSI), UK QWERTY (ISO) and German QWERTZ (ISO). There is another keyboard which works with French AZERTY (ISO) and what we call a “fauxzerty” which is a US Keyboard (ANSI) with a few keys popped off and displaced.

On a functional level, for a layout to be compatible with both ANSI and ISO, you only need to define the “102nd” key (K_oE2). There is a small checkbox to enable it in the bottom right of @nyny 's screenshot. All other keycodes will work on either. The ANSI \ key (K_BKSLASH) in this view is equivalent to the ISO key to the right of apostrophe.

Other than defining K_oE2 if desired, no need to change your project.

1 Like

I think the important thing to note here is the presented layout does not change the functional behaviour of your keyboard.

Interesting, so then to use K_BKSLASH I can only do that in “code”, not “design”?

It would be nice if there was a way to have the “design” view match my preferred layout. Or at least figure out why it’s defaulting to a different layout in my developer app.

All of the keys you need are available if you click the 102nd box. The K_BKSLASH is just located at the far right of your first letter row in the developer interface, and will be found down beside the enter key on the physical ISO keyboard. It’s as if the key “moves” between the two versions.

There are things in Keyman Developer that remain English-centric and QWERTY-centric, and not all of that code has been updated/replaced. Nevertheless, I can confirm from my work on AZERTY that an ISO keyboard user will be able to use your keyboard as intended if you define those keys.

Note: Edited to fix ANSI/ISO.

@Michael_Wynne the layout of the hardware keyboard view in the keyboard design page is selected according to the active Windows system keyboard. The specific check the designer makes is to compare the Windows system keyboard output of K_oE2 (“102nd key”, key to the right of the Left Shift key on a European/ISO layout, highlighted in red) with the output of K_BKSLASH \, “backslash key”, also highlighted in red) – and if these differ, then it assumes you are using an ISO layout, not an ANSI layout.

Which Windows system keyboard do you have active when Keyman Developer starts?

(@Matthew_Lee I think you swapped ANSI and ISO – ANSI is the “US” layout, which has \ – highlighted in red in the image above – on the second row above Enter.)

This is all just for presentation. The K_BKSLASH key is accessible on the ISO layout (it just moves down a row, next to Enter). The “102nd” key (K_oE2) can be turned on with the checkbox “Display &102nd Key (as on European keyboards)”.

1 Like

@Marc Fixed it…I knew what I was talking about in the previous posts, then somehow I got my fingers crossed…

Your explanation is much clearer than mine, and it’s not just the formatting/illustrations.

1 Like