Keyboard Layout

We are working on improving support of different keyboard layouts and need a bit of help from users with non-Latin based layouts (russian, chinese and so on). How do you usually work? Are you switching between US for coding and your language layout?

[original thread by Anton Kosyakov]

No, I use my Swiss-German (de-ch) layout for everything.

Same here (i.e. german keyboard and layout)

[Miro Spönemann]

Spectrum seems to have swallowed some earlier comments (at least I don’t see them anymore), so I repeat mine: You can find the current list of supported layouts here: https://github.com/theia-ide/theia/blob/e147cf39c7f484374b7ec0cd0d04958c3ef00bca/packages/core/src/browser/keyboard/browser-keyboard-layout-provider.ts#L415-L460

[Miro Spönemann]

German and Swiss German are both included. If anyone has the need to put add more supported keyboards, you can do that with the generate-layout script: https://github.com/theia-ide/theia/blob/master/packages/core/scripts/generate-layout.js

Re: loss of comments https://twitter.com/withspectrum/status/1126401681497968640 :roll_eyes:

[Benjamin Freeman]

I am trying to generate a layout. If I understand correctly, the generation requires electron, right ?

@beetix Do you use https://github.com/theia-ide/theia/blob/master/packages/core/scripts/generate-layout.js#L20? It should use electron automatically.

But you should not forget it as a dependency, i.e. via yarn add @theia/electron@next

[Benjamin Freeman]

@anton-kosyakov yes, I am using this script. The problem is that I am trying to run it inside a docker container without a X server.

[Benjamin Freeman]

running the script directly on the host still gives an error: theia/node_modules/native-keymap/build/Release/keymapping.node: undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorENS_14SideEffectTypeE

[Benjamin Freeman]

From theia root directory I did yarn then cd packages/core and yarn generate-layout

[Benjamin Freeman]

is that the correct way of doing it?

inside docker container you will need to install missing tools

you can have a look how gitpod Theia docker container is configured to allow electron testing

[Benjamin Freeman]

thank you for the link I must give it a try.

[Benjamin Freeman]

unfortunately I get the error even when running the code on the host (no docker container involved) using node v10.16.0 and yarn v1.16.0

cc @spoenemann maybe you can help

[Benjamin Freeman]

I just gave Gitpod a try and I get the same error