Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KDE: Reading keyboard layout reads the wrong one #23505

Closed
rebornix opened this issue Mar 28, 2017 · 10 comments
Closed

KDE: Reading keyboard layout reads the wrong one #23505

rebornix opened this issue Mar 28, 2017 · 10 comments
Assignees
Labels
*duplicate Issue identified as a duplicate of another issue(s) keyboard-layout Keyboard layout issues linux Issues with VS Code on Linux
Milestone

Comments

@rebornix
Copy link
Member

Ref #23315

OS: CentOS Linux release 7.2.1511 (Core)
Language: German

screen shot 2017-03-28 at 2 56 41 pm

The builtin keyboard layout detector is correct, shift+7 generates / in system terminal, but our keymap sees it as &.

@rebornix
Copy link
Member Author

Tested on macOS, the result is as expected.

@alexdima alexdima added linux Issues with VS Code on Linux keyboard-layout Keyboard layout issues labels Mar 29, 2017
@alexdima
Copy link
Member

@rebornix Does this correct itself in any way if VS Code is restarted? i.e. in Linux we do not detect keyboard layout changes. Can you please start VSCode fresh under this keyboard layout and include perhaps the entire key mapping debug buffer. It appears the C++ module tells us shift+7 creates & -> which looks to me like the English kb layout was detected by the C++ module. Also, if you scroll up, at the top of the file we print the detected keyboard layout. I just wanna double check that we're not simply suffering here from a case of changing the kb layout after VS Code is up and running

@alexdima alexdima added the info-needed Issue requires more information from poster label Mar 29, 2017
@alexdima alexdima added this to the Backlog milestone Mar 29, 2017
@rebornix
Copy link
Member Author

rebornix commented Mar 29, 2017

Here are my reproduce steps:

  • Restart CentOS and run ps aux|grep 'code' to make sure no Code instance is active.
  • Switch to German
  • Check the keyboard layout, 7 represents 7,/ and two others
  • Launch builtin Terminal, press shift+7 and it generates /
  • Launch VS Code Insider, display keymap. It tells me shift+7 generates &. The complete key mapping is as below.

My CentOS is running in Parallel Desktop. So I tried below steps

  • Switch to German in macOS.
  • Launch VS Code Insider in macOS, shift+7 generates /, which is perfect.
  • Restart CentOS VM
  • Login
  • Launch VS Code and try shift+7 again. It still generates &.

It still doesn't rule out the possibility that Parallel Desktop may cause this issue. I'll see if @Tyriar can reproduce this issue.

Output
Layout info:
{
	"model": "pc105",
	"layout": "us,cn,de,us",
	"variant": ",,,",
	"options": "",
	"rules": "evdev"
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyA |   a   |                         A |     |                         A |                              a |                         A |                         [KeyA] |         |
|                      Ctrl+KeyA |   a   |                    Ctrl+A |     |                    Ctrl+A |                         ctrl+a |                    Ctrl+A |                    ctrl+[KeyA] |         |
|                     Shift+KeyA |   A   |                   Shift+A |     |                   Shift+A |                        shift+a |                   Shift+A |                   shift+[KeyA] |         |
|                Ctrl+Shift+KeyA |   A   |              Ctrl+Shift+A |     |              Ctrl+Shift+A |                   ctrl+shift+a |              Ctrl+Shift+A |              ctrl+shift+[KeyA] |         |
|                       Alt+KeyA |   a   |                     Alt+A |     |                     Alt+A |                          alt+a |                     Alt+A |                     alt+[KeyA] |         |
|                  Ctrl+Alt+KeyA |   a   |                Ctrl+Alt+A |     |                Ctrl+Alt+A |                     ctrl+alt+a |                Ctrl+Alt+A |                ctrl+alt+[KeyA] |         |
|                 Shift+Alt+KeyA |   A   |               Shift+Alt+A |     |               Shift+Alt+A |                    shift+alt+a |               Shift+Alt+A |               shift+alt+[KeyA] |         |
|            Ctrl+Shift+Alt+KeyA |   A   |          Ctrl+Shift+Alt+A |     |          Ctrl+Shift+Alt+A |               ctrl+shift+alt+a |          Ctrl+Shift+Alt+A |          ctrl+shift+alt+[KeyA] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyB |   b   |                         B |     |                         B |                              b |                         B |                         [KeyB] |         |
|                      Ctrl+KeyB |   b   |                    Ctrl+B |     |                    Ctrl+B |                         ctrl+b |                    Ctrl+B |                    ctrl+[KeyB] |         |
|                     Shift+KeyB |   B   |                   Shift+B |     |                   Shift+B |                        shift+b |                   Shift+B |                   shift+[KeyB] |         |
|                Ctrl+Shift+KeyB |   B   |              Ctrl+Shift+B |     |              Ctrl+Shift+B |                   ctrl+shift+b |              Ctrl+Shift+B |              ctrl+shift+[KeyB] |         |
|                       Alt+KeyB |   b   |                     Alt+B |     |                     Alt+B |                          alt+b |                     Alt+B |                     alt+[KeyB] |         |
|                  Ctrl+Alt+KeyB |   b   |                Ctrl+Alt+B |     |                Ctrl+Alt+B |                     ctrl+alt+b |                Ctrl+Alt+B |                ctrl+alt+[KeyB] |         |
|                 Shift+Alt+KeyB |   B   |               Shift+Alt+B |     |               Shift+Alt+B |                    shift+alt+b |               Shift+Alt+B |               shift+alt+[KeyB] |         |
|            Ctrl+Shift+Alt+KeyB |   B   |          Ctrl+Shift+Alt+B |     |          Ctrl+Shift+Alt+B |               ctrl+shift+alt+b |          Ctrl+Shift+Alt+B |          ctrl+shift+alt+[KeyB] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyC |   c   |                         C |     |                         C |                              c |                         C |                         [KeyC] |         |
|                      Ctrl+KeyC |   c   |                    Ctrl+C |     |                    Ctrl+C |                         ctrl+c |                    Ctrl+C |                    ctrl+[KeyC] |         |
|                     Shift+KeyC |   C   |                   Shift+C |     |                   Shift+C |                        shift+c |                   Shift+C |                   shift+[KeyC] |         |
|                Ctrl+Shift+KeyC |   C   |              Ctrl+Shift+C |     |              Ctrl+Shift+C |                   ctrl+shift+c |              Ctrl+Shift+C |              ctrl+shift+[KeyC] |         |
|                       Alt+KeyC |   c   |                     Alt+C |     |                     Alt+C |                          alt+c |                     Alt+C |                     alt+[KeyC] |         |
|                  Ctrl+Alt+KeyC |   c   |                Ctrl+Alt+C |     |                Ctrl+Alt+C |                     ctrl+alt+c |                Ctrl+Alt+C |                ctrl+alt+[KeyC] |         |
|                 Shift+Alt+KeyC |   C   |               Shift+Alt+C |     |               Shift+Alt+C |                    shift+alt+c |               Shift+Alt+C |               shift+alt+[KeyC] |         |
|            Ctrl+Shift+Alt+KeyC |   C   |          Ctrl+Shift+Alt+C |     |          Ctrl+Shift+Alt+C |               ctrl+shift+alt+c |          Ctrl+Shift+Alt+C |          ctrl+shift+alt+[KeyC] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyD |   d   |                         D |     |                         D |                              d |                         D |                         [KeyD] |         |
|                      Ctrl+KeyD |   d   |                    Ctrl+D |     |                    Ctrl+D |                         ctrl+d |                    Ctrl+D |                    ctrl+[KeyD] |         |
|                     Shift+KeyD |   D   |                   Shift+D |     |                   Shift+D |                        shift+d |                   Shift+D |                   shift+[KeyD] |         |
|                Ctrl+Shift+KeyD |   D   |              Ctrl+Shift+D |     |              Ctrl+Shift+D |                   ctrl+shift+d |              Ctrl+Shift+D |              ctrl+shift+[KeyD] |         |
|                       Alt+KeyD |   d   |                     Alt+D |     |                     Alt+D |                          alt+d |                     Alt+D |                     alt+[KeyD] |         |
|                  Ctrl+Alt+KeyD |   d   |                Ctrl+Alt+D |     |                Ctrl+Alt+D |                     ctrl+alt+d |                Ctrl+Alt+D |                ctrl+alt+[KeyD] |         |
|                 Shift+Alt+KeyD |   D   |               Shift+Alt+D |     |               Shift+Alt+D |                    shift+alt+d |               Shift+Alt+D |               shift+alt+[KeyD] |         |
|            Ctrl+Shift+Alt+KeyD |   D   |          Ctrl+Shift+Alt+D |     |          Ctrl+Shift+Alt+D |               ctrl+shift+alt+d |          Ctrl+Shift+Alt+D |          ctrl+shift+alt+[KeyD] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyE |   e   |                         E |     |                         E |                              e |                         E |                         [KeyE] |         |
|                      Ctrl+KeyE |   e   |                    Ctrl+E |     |                    Ctrl+E |                         ctrl+e |                    Ctrl+E |                    ctrl+[KeyE] |         |
|                     Shift+KeyE |   E   |                   Shift+E |     |                   Shift+E |                        shift+e |                   Shift+E |                   shift+[KeyE] |         |
|                Ctrl+Shift+KeyE |   E   |              Ctrl+Shift+E |     |              Ctrl+Shift+E |                   ctrl+shift+e |              Ctrl+Shift+E |              ctrl+shift+[KeyE] |         |
|                       Alt+KeyE |   e   |                     Alt+E |     |                     Alt+E |                          alt+e |                     Alt+E |                     alt+[KeyE] |         |
|                  Ctrl+Alt+KeyE |   e   |                Ctrl+Alt+E |     |                Ctrl+Alt+E |                     ctrl+alt+e |                Ctrl+Alt+E |                ctrl+alt+[KeyE] |         |
|                 Shift+Alt+KeyE |   E   |               Shift+Alt+E |     |               Shift+Alt+E |                    shift+alt+e |               Shift+Alt+E |               shift+alt+[KeyE] |         |
|            Ctrl+Shift+Alt+KeyE |   E   |          Ctrl+Shift+Alt+E |     |          Ctrl+Shift+Alt+E |               ctrl+shift+alt+e |          Ctrl+Shift+Alt+E |          ctrl+shift+alt+[KeyE] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyF |   f   |                         F |     |                         F |                              f |                         F |                         [KeyF] |         |
|                      Ctrl+KeyF |   f   |                    Ctrl+F |     |                    Ctrl+F |                         ctrl+f |                    Ctrl+F |                    ctrl+[KeyF] |         |
|                     Shift+KeyF |   F   |                   Shift+F |     |                   Shift+F |                        shift+f |                   Shift+F |                   shift+[KeyF] |         |
|                Ctrl+Shift+KeyF |   F   |              Ctrl+Shift+F |     |              Ctrl+Shift+F |                   ctrl+shift+f |              Ctrl+Shift+F |              ctrl+shift+[KeyF] |         |
|                       Alt+KeyF |   f   |                     Alt+F |     |                     Alt+F |                          alt+f |                     Alt+F |                     alt+[KeyF] |         |
|                  Ctrl+Alt+KeyF |   f   |                Ctrl+Alt+F |     |                Ctrl+Alt+F |                     ctrl+alt+f |                Ctrl+Alt+F |                ctrl+alt+[KeyF] |         |
|                 Shift+Alt+KeyF |   F   |               Shift+Alt+F |     |               Shift+Alt+F |                    shift+alt+f |               Shift+Alt+F |               shift+alt+[KeyF] |         |
|            Ctrl+Shift+Alt+KeyF |   F   |          Ctrl+Shift+Alt+F |     |          Ctrl+Shift+Alt+F |               ctrl+shift+alt+f |          Ctrl+Shift+Alt+F |          ctrl+shift+alt+[KeyF] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyG |   g   |                         G |     |                         G |                              g |                         G |                         [KeyG] |         |
|                      Ctrl+KeyG |   g   |                    Ctrl+G |     |                    Ctrl+G |                         ctrl+g |                    Ctrl+G |                    ctrl+[KeyG] |         |
|                     Shift+KeyG |   G   |                   Shift+G |     |                   Shift+G |                        shift+g |                   Shift+G |                   shift+[KeyG] |         |
|                Ctrl+Shift+KeyG |   G   |              Ctrl+Shift+G |     |              Ctrl+Shift+G |                   ctrl+shift+g |              Ctrl+Shift+G |              ctrl+shift+[KeyG] |         |
|                       Alt+KeyG |   g   |                     Alt+G |     |                     Alt+G |                          alt+g |                     Alt+G |                     alt+[KeyG] |         |
|                  Ctrl+Alt+KeyG |   g   |                Ctrl+Alt+G |     |                Ctrl+Alt+G |                     ctrl+alt+g |                Ctrl+Alt+G |                ctrl+alt+[KeyG] |         |
|                 Shift+Alt+KeyG |   G   |               Shift+Alt+G |     |               Shift+Alt+G |                    shift+alt+g |               Shift+Alt+G |               shift+alt+[KeyG] |         |
|            Ctrl+Shift+Alt+KeyG |   G   |          Ctrl+Shift+Alt+G |     |          Ctrl+Shift+Alt+G |               ctrl+shift+alt+g |          Ctrl+Shift+Alt+G |          ctrl+shift+alt+[KeyG] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyH |   h   |                         H |     |                         H |                              h |                         H |                         [KeyH] |         |
|                      Ctrl+KeyH |   h   |                    Ctrl+H |     |                    Ctrl+H |                         ctrl+h |                    Ctrl+H |                    ctrl+[KeyH] |         |
|                     Shift+KeyH |   H   |                   Shift+H |     |                   Shift+H |                        shift+h |                   Shift+H |                   shift+[KeyH] |         |
|                Ctrl+Shift+KeyH |   H   |              Ctrl+Shift+H |     |              Ctrl+Shift+H |                   ctrl+shift+h |              Ctrl+Shift+H |              ctrl+shift+[KeyH] |         |
|                       Alt+KeyH |   h   |                     Alt+H |     |                     Alt+H |                          alt+h |                     Alt+H |                     alt+[KeyH] |         |
|                  Ctrl+Alt+KeyH |   h   |                Ctrl+Alt+H |     |                Ctrl+Alt+H |                     ctrl+alt+h |                Ctrl+Alt+H |                ctrl+alt+[KeyH] |         |
|                 Shift+Alt+KeyH |   H   |               Shift+Alt+H |     |               Shift+Alt+H |                    shift+alt+h |               Shift+Alt+H |               shift+alt+[KeyH] |         |
|            Ctrl+Shift+Alt+KeyH |   H   |          Ctrl+Shift+Alt+H |     |          Ctrl+Shift+Alt+H |               ctrl+shift+alt+h |          Ctrl+Shift+Alt+H |          ctrl+shift+alt+[KeyH] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyI |   i   |                         I |     |                         I |                              i |                         I |                         [KeyI] |         |
|                      Ctrl+KeyI |   i   |                    Ctrl+I |     |                    Ctrl+I |                         ctrl+i |                    Ctrl+I |                    ctrl+[KeyI] |         |
|                     Shift+KeyI |   I   |                   Shift+I |     |                   Shift+I |                        shift+i |                   Shift+I |                   shift+[KeyI] |         |
|                Ctrl+Shift+KeyI |   I   |              Ctrl+Shift+I |     |              Ctrl+Shift+I |                   ctrl+shift+i |              Ctrl+Shift+I |              ctrl+shift+[KeyI] |         |
|                       Alt+KeyI |   i   |                     Alt+I |     |                     Alt+I |                          alt+i |                     Alt+I |                     alt+[KeyI] |         |
|                  Ctrl+Alt+KeyI |   i   |                Ctrl+Alt+I |     |                Ctrl+Alt+I |                     ctrl+alt+i |                Ctrl+Alt+I |                ctrl+alt+[KeyI] |         |
|                 Shift+Alt+KeyI |   I   |               Shift+Alt+I |     |               Shift+Alt+I |                    shift+alt+i |               Shift+Alt+I |               shift+alt+[KeyI] |         |
|            Ctrl+Shift+Alt+KeyI |   I   |          Ctrl+Shift+Alt+I |     |          Ctrl+Shift+Alt+I |               ctrl+shift+alt+i |          Ctrl+Shift+Alt+I |          ctrl+shift+alt+[KeyI] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyJ |   j   |                         J |     |                         J |                              j |                         J |                         [KeyJ] |         |
|                      Ctrl+KeyJ |   j   |                    Ctrl+J |     |                    Ctrl+J |                         ctrl+j |                    Ctrl+J |                    ctrl+[KeyJ] |         |
|                     Shift+KeyJ |   J   |                   Shift+J |     |                   Shift+J |                        shift+j |                   Shift+J |                   shift+[KeyJ] |         |
|                Ctrl+Shift+KeyJ |   J   |              Ctrl+Shift+J |     |              Ctrl+Shift+J |                   ctrl+shift+j |              Ctrl+Shift+J |              ctrl+shift+[KeyJ] |         |
|                       Alt+KeyJ |   j   |                     Alt+J |     |                     Alt+J |                          alt+j |                     Alt+J |                     alt+[KeyJ] |         |
|                  Ctrl+Alt+KeyJ |   j   |                Ctrl+Alt+J |     |                Ctrl+Alt+J |                     ctrl+alt+j |                Ctrl+Alt+J |                ctrl+alt+[KeyJ] |         |
|                 Shift+Alt+KeyJ |   J   |               Shift+Alt+J |     |               Shift+Alt+J |                    shift+alt+j |               Shift+Alt+J |               shift+alt+[KeyJ] |         |
|            Ctrl+Shift+Alt+KeyJ |   J   |          Ctrl+Shift+Alt+J |     |          Ctrl+Shift+Alt+J |               ctrl+shift+alt+j |          Ctrl+Shift+Alt+J |          ctrl+shift+alt+[KeyJ] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyK |   k   |                         K |     |                         K |                              k |                         K |                         [KeyK] |         |
|                      Ctrl+KeyK |   k   |                    Ctrl+K |     |                    Ctrl+K |                         ctrl+k |                    Ctrl+K |                    ctrl+[KeyK] |         |
|                     Shift+KeyK |   K   |                   Shift+K |     |                   Shift+K |                        shift+k |                   Shift+K |                   shift+[KeyK] |         |
|                Ctrl+Shift+KeyK |   K   |              Ctrl+Shift+K |     |              Ctrl+Shift+K |                   ctrl+shift+k |              Ctrl+Shift+K |              ctrl+shift+[KeyK] |         |
|                       Alt+KeyK |   k   |                     Alt+K |     |                     Alt+K |                          alt+k |                     Alt+K |                     alt+[KeyK] |         |
|                  Ctrl+Alt+KeyK |   k   |                Ctrl+Alt+K |     |                Ctrl+Alt+K |                     ctrl+alt+k |                Ctrl+Alt+K |                ctrl+alt+[KeyK] |         |
|                 Shift+Alt+KeyK |   K   |               Shift+Alt+K |     |               Shift+Alt+K |                    shift+alt+k |               Shift+Alt+K |               shift+alt+[KeyK] |         |
|            Ctrl+Shift+Alt+KeyK |   K   |          Ctrl+Shift+Alt+K |     |          Ctrl+Shift+Alt+K |               ctrl+shift+alt+k |          Ctrl+Shift+Alt+K |          ctrl+shift+alt+[KeyK] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyL |   l   |                         L |     |                         L |                              l |                         L |                         [KeyL] |         |
|                      Ctrl+KeyL |   l   |                    Ctrl+L |     |                    Ctrl+L |                         ctrl+l |                    Ctrl+L |                    ctrl+[KeyL] |         |
|                     Shift+KeyL |   L   |                   Shift+L |     |                   Shift+L |                        shift+l |                   Shift+L |                   shift+[KeyL] |         |
|                Ctrl+Shift+KeyL |   L   |              Ctrl+Shift+L |     |              Ctrl+Shift+L |                   ctrl+shift+l |              Ctrl+Shift+L |              ctrl+shift+[KeyL] |         |
|                       Alt+KeyL |   l   |                     Alt+L |     |                     Alt+L |                          alt+l |                     Alt+L |                     alt+[KeyL] |         |
|                  Ctrl+Alt+KeyL |   l   |                Ctrl+Alt+L |     |                Ctrl+Alt+L |                     ctrl+alt+l |                Ctrl+Alt+L |                ctrl+alt+[KeyL] |         |
|                 Shift+Alt+KeyL |   L   |               Shift+Alt+L |     |               Shift+Alt+L |                    shift+alt+l |               Shift+Alt+L |               shift+alt+[KeyL] |         |
|            Ctrl+Shift+Alt+KeyL |   L   |          Ctrl+Shift+Alt+L |     |          Ctrl+Shift+Alt+L |               ctrl+shift+alt+l |          Ctrl+Shift+Alt+L |          ctrl+shift+alt+[KeyL] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyM |   m   |                         M |     |                         M |                              m |                         M |                         [KeyM] |         |
|                      Ctrl+KeyM |   m   |                    Ctrl+M |     |                    Ctrl+M |                         ctrl+m |                    Ctrl+M |                    ctrl+[KeyM] |         |
|                     Shift+KeyM |   M   |                   Shift+M |     |                   Shift+M |                        shift+m |                   Shift+M |                   shift+[KeyM] |         |
|                Ctrl+Shift+KeyM |   M   |              Ctrl+Shift+M |     |              Ctrl+Shift+M |                   ctrl+shift+m |              Ctrl+Shift+M |              ctrl+shift+[KeyM] |         |
|                       Alt+KeyM |   m   |                     Alt+M |     |                     Alt+M |                          alt+m |                     Alt+M |                     alt+[KeyM] |         |
|                  Ctrl+Alt+KeyM |   m   |                Ctrl+Alt+M |     |                Ctrl+Alt+M |                     ctrl+alt+m |                Ctrl+Alt+M |                ctrl+alt+[KeyM] |         |
|                 Shift+Alt+KeyM |   M   |               Shift+Alt+M |     |               Shift+Alt+M |                    shift+alt+m |               Shift+Alt+M |               shift+alt+[KeyM] |         |
|            Ctrl+Shift+Alt+KeyM |   M   |          Ctrl+Shift+Alt+M |     |          Ctrl+Shift+Alt+M |               ctrl+shift+alt+m |          Ctrl+Shift+Alt+M |          ctrl+shift+alt+[KeyM] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyN |   n   |                         N |     |                         N |                              n |                         N |                         [KeyN] |         |
|                      Ctrl+KeyN |   n   |                    Ctrl+N |     |                    Ctrl+N |                         ctrl+n |                    Ctrl+N |                    ctrl+[KeyN] |         |
|                     Shift+KeyN |   N   |                   Shift+N |     |                   Shift+N |                        shift+n |                   Shift+N |                   shift+[KeyN] |         |
|                Ctrl+Shift+KeyN |   N   |              Ctrl+Shift+N |     |              Ctrl+Shift+N |                   ctrl+shift+n |              Ctrl+Shift+N |              ctrl+shift+[KeyN] |         |
|                       Alt+KeyN |   n   |                     Alt+N |     |                     Alt+N |                          alt+n |                     Alt+N |                     alt+[KeyN] |         |
|                  Ctrl+Alt+KeyN |   n   |                Ctrl+Alt+N |     |                Ctrl+Alt+N |                     ctrl+alt+n |                Ctrl+Alt+N |                ctrl+alt+[KeyN] |         |
|                 Shift+Alt+KeyN |   N   |               Shift+Alt+N |     |               Shift+Alt+N |                    shift+alt+n |               Shift+Alt+N |               shift+alt+[KeyN] |         |
|            Ctrl+Shift+Alt+KeyN |   N   |          Ctrl+Shift+Alt+N |     |          Ctrl+Shift+Alt+N |               ctrl+shift+alt+n |          Ctrl+Shift+Alt+N |          ctrl+shift+alt+[KeyN] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyO |   o   |                         O |     |                         O |                              o |                         O |                         [KeyO] |         |
|                      Ctrl+KeyO |   o   |                    Ctrl+O |     |                    Ctrl+O |                         ctrl+o |                    Ctrl+O |                    ctrl+[KeyO] |         |
|                     Shift+KeyO |   O   |                   Shift+O |     |                   Shift+O |                        shift+o |                   Shift+O |                   shift+[KeyO] |         |
|                Ctrl+Shift+KeyO |   O   |              Ctrl+Shift+O |     |              Ctrl+Shift+O |                   ctrl+shift+o |              Ctrl+Shift+O |              ctrl+shift+[KeyO] |         |
|                       Alt+KeyO |   o   |                     Alt+O |     |                     Alt+O |                          alt+o |                     Alt+O |                     alt+[KeyO] |         |
|                  Ctrl+Alt+KeyO |   o   |                Ctrl+Alt+O |     |                Ctrl+Alt+O |                     ctrl+alt+o |                Ctrl+Alt+O |                ctrl+alt+[KeyO] |         |
|                 Shift+Alt+KeyO |   O   |               Shift+Alt+O |     |               Shift+Alt+O |                    shift+alt+o |               Shift+Alt+O |               shift+alt+[KeyO] |         |
|            Ctrl+Shift+Alt+KeyO |   O   |          Ctrl+Shift+Alt+O |     |          Ctrl+Shift+Alt+O |               ctrl+shift+alt+o |          Ctrl+Shift+Alt+O |          ctrl+shift+alt+[KeyO] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyP |   p   |                         P |     |                         P |                              p |                         P |                         [KeyP] |         |
|                      Ctrl+KeyP |   p   |                    Ctrl+P |     |                    Ctrl+P |                         ctrl+p |                    Ctrl+P |                    ctrl+[KeyP] |         |
|                     Shift+KeyP |   P   |                   Shift+P |     |                   Shift+P |                        shift+p |                   Shift+P |                   shift+[KeyP] |         |
|                Ctrl+Shift+KeyP |   P   |              Ctrl+Shift+P |     |              Ctrl+Shift+P |                   ctrl+shift+p |              Ctrl+Shift+P |              ctrl+shift+[KeyP] |         |
|                       Alt+KeyP |   p   |                     Alt+P |     |                     Alt+P |                          alt+p |                     Alt+P |                     alt+[KeyP] |         |
|                  Ctrl+Alt+KeyP |   p   |                Ctrl+Alt+P |     |                Ctrl+Alt+P |                     ctrl+alt+p |                Ctrl+Alt+P |                ctrl+alt+[KeyP] |         |
|                 Shift+Alt+KeyP |   P   |               Shift+Alt+P |     |               Shift+Alt+P |                    shift+alt+p |               Shift+Alt+P |               shift+alt+[KeyP] |         |
|            Ctrl+Shift+Alt+KeyP |   P   |          Ctrl+Shift+Alt+P |     |          Ctrl+Shift+Alt+P |               ctrl+shift+alt+p |          Ctrl+Shift+Alt+P |          ctrl+shift+alt+[KeyP] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyQ |   q   |                         Q |     |                         Q |                              q |                         Q |                         [KeyQ] |         |
|                      Ctrl+KeyQ |   q   |                    Ctrl+Q |     |                    Ctrl+Q |                         ctrl+q |                    Ctrl+Q |                    ctrl+[KeyQ] |         |
|                     Shift+KeyQ |   Q   |                   Shift+Q |     |                   Shift+Q |                        shift+q |                   Shift+Q |                   shift+[KeyQ] |         |
|                Ctrl+Shift+KeyQ |   Q   |              Ctrl+Shift+Q |     |              Ctrl+Shift+Q |                   ctrl+shift+q |              Ctrl+Shift+Q |              ctrl+shift+[KeyQ] |         |
|                       Alt+KeyQ |   q   |                     Alt+Q |     |                     Alt+Q |                          alt+q |                     Alt+Q |                     alt+[KeyQ] |         |
|                  Ctrl+Alt+KeyQ |   q   |                Ctrl+Alt+Q |     |                Ctrl+Alt+Q |                     ctrl+alt+q |                Ctrl+Alt+Q |                ctrl+alt+[KeyQ] |         |
|                 Shift+Alt+KeyQ |   Q   |               Shift+Alt+Q |     |               Shift+Alt+Q |                    shift+alt+q |               Shift+Alt+Q |               shift+alt+[KeyQ] |         |
|            Ctrl+Shift+Alt+KeyQ |   Q   |          Ctrl+Shift+Alt+Q |     |          Ctrl+Shift+Alt+Q |               ctrl+shift+alt+q |          Ctrl+Shift+Alt+Q |          ctrl+shift+alt+[KeyQ] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyR |   r   |                         R |     |                         R |                              r |                         R |                         [KeyR] |         |
|                      Ctrl+KeyR |   r   |                    Ctrl+R |     |                    Ctrl+R |                         ctrl+r |                    Ctrl+R |                    ctrl+[KeyR] |         |
|                     Shift+KeyR |   R   |                   Shift+R |     |                   Shift+R |                        shift+r |                   Shift+R |                   shift+[KeyR] |         |
|                Ctrl+Shift+KeyR |   R   |              Ctrl+Shift+R |     |              Ctrl+Shift+R |                   ctrl+shift+r |              Ctrl+Shift+R |              ctrl+shift+[KeyR] |         |
|                       Alt+KeyR |   r   |                     Alt+R |     |                     Alt+R |                          alt+r |                     Alt+R |                     alt+[KeyR] |         |
|                  Ctrl+Alt+KeyR |   r   |                Ctrl+Alt+R |     |                Ctrl+Alt+R |                     ctrl+alt+r |                Ctrl+Alt+R |                ctrl+alt+[KeyR] |         |
|                 Shift+Alt+KeyR |   R   |               Shift+Alt+R |     |               Shift+Alt+R |                    shift+alt+r |               Shift+Alt+R |               shift+alt+[KeyR] |         |
|            Ctrl+Shift+Alt+KeyR |   R   |          Ctrl+Shift+Alt+R |     |          Ctrl+Shift+Alt+R |               ctrl+shift+alt+r |          Ctrl+Shift+Alt+R |          ctrl+shift+alt+[KeyR] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyS |   s   |                         S |     |                         S |                              s |                         S |                         [KeyS] |         |
|                      Ctrl+KeyS |   s   |                    Ctrl+S |     |                    Ctrl+S |                         ctrl+s |                    Ctrl+S |                    ctrl+[KeyS] |         |
|                     Shift+KeyS |   S   |                   Shift+S |     |                   Shift+S |                        shift+s |                   Shift+S |                   shift+[KeyS] |         |
|                Ctrl+Shift+KeyS |   S   |              Ctrl+Shift+S |     |              Ctrl+Shift+S |                   ctrl+shift+s |              Ctrl+Shift+S |              ctrl+shift+[KeyS] |         |
|                       Alt+KeyS |   s   |                     Alt+S |     |                     Alt+S |                          alt+s |                     Alt+S |                     alt+[KeyS] |         |
|                  Ctrl+Alt+KeyS |   s   |                Ctrl+Alt+S |     |                Ctrl+Alt+S |                     ctrl+alt+s |                Ctrl+Alt+S |                ctrl+alt+[KeyS] |         |
|                 Shift+Alt+KeyS |   S   |               Shift+Alt+S |     |               Shift+Alt+S |                    shift+alt+s |               Shift+Alt+S |               shift+alt+[KeyS] |         |
|            Ctrl+Shift+Alt+KeyS |   S   |          Ctrl+Shift+Alt+S |     |          Ctrl+Shift+Alt+S |               ctrl+shift+alt+s |          Ctrl+Shift+Alt+S |          ctrl+shift+alt+[KeyS] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyT |   t   |                         T |     |                         T |                              t |                         T |                         [KeyT] |         |
|                      Ctrl+KeyT |   t   |                    Ctrl+T |     |                    Ctrl+T |                         ctrl+t |                    Ctrl+T |                    ctrl+[KeyT] |         |
|                     Shift+KeyT |   T   |                   Shift+T |     |                   Shift+T |                        shift+t |                   Shift+T |                   shift+[KeyT] |         |
|                Ctrl+Shift+KeyT |   T   |              Ctrl+Shift+T |     |              Ctrl+Shift+T |                   ctrl+shift+t |              Ctrl+Shift+T |              ctrl+shift+[KeyT] |         |
|                       Alt+KeyT |   t   |                     Alt+T |     |                     Alt+T |                          alt+t |                     Alt+T |                     alt+[KeyT] |         |
|                  Ctrl+Alt+KeyT |   t   |                Ctrl+Alt+T |     |                Ctrl+Alt+T |                     ctrl+alt+t |                Ctrl+Alt+T |                ctrl+alt+[KeyT] |         |
|                 Shift+Alt+KeyT |   T   |               Shift+Alt+T |     |               Shift+Alt+T |                    shift+alt+t |               Shift+Alt+T |               shift+alt+[KeyT] |         |
|            Ctrl+Shift+Alt+KeyT |   T   |          Ctrl+Shift+Alt+T |     |          Ctrl+Shift+Alt+T |               ctrl+shift+alt+t |          Ctrl+Shift+Alt+T |          ctrl+shift+alt+[KeyT] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyU |   u   |                         U |     |                         U |                              u |                         U |                         [KeyU] |         |
|                      Ctrl+KeyU |   u   |                    Ctrl+U |     |                    Ctrl+U |                         ctrl+u |                    Ctrl+U |                    ctrl+[KeyU] |         |
|                     Shift+KeyU |   U   |                   Shift+U |     |                   Shift+U |                        shift+u |                   Shift+U |                   shift+[KeyU] |         |
|                Ctrl+Shift+KeyU |   U   |              Ctrl+Shift+U |     |              Ctrl+Shift+U |                   ctrl+shift+u |              Ctrl+Shift+U |              ctrl+shift+[KeyU] |         |
|                       Alt+KeyU |   u   |                     Alt+U |     |                     Alt+U |                          alt+u |                     Alt+U |                     alt+[KeyU] |         |
|                  Ctrl+Alt+KeyU |   u   |                Ctrl+Alt+U |     |                Ctrl+Alt+U |                     ctrl+alt+u |                Ctrl+Alt+U |                ctrl+alt+[KeyU] |         |
|                 Shift+Alt+KeyU |   U   |               Shift+Alt+U |     |               Shift+Alt+U |                    shift+alt+u |               Shift+Alt+U |               shift+alt+[KeyU] |         |
|            Ctrl+Shift+Alt+KeyU |   U   |          Ctrl+Shift+Alt+U |     |          Ctrl+Shift+Alt+U |               ctrl+shift+alt+u |          Ctrl+Shift+Alt+U |          ctrl+shift+alt+[KeyU] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyV |   v   |                         V |     |                         V |                              v |                         V |                         [KeyV] |         |
|                      Ctrl+KeyV |   v   |                    Ctrl+V |     |                    Ctrl+V |                         ctrl+v |                    Ctrl+V |                    ctrl+[KeyV] |         |
|                     Shift+KeyV |   V   |                   Shift+V |     |                   Shift+V |                        shift+v |                   Shift+V |                   shift+[KeyV] |         |
|                Ctrl+Shift+KeyV |   V   |              Ctrl+Shift+V |     |              Ctrl+Shift+V |                   ctrl+shift+v |              Ctrl+Shift+V |              ctrl+shift+[KeyV] |         |
|                       Alt+KeyV |   v   |                     Alt+V |     |                     Alt+V |                          alt+v |                     Alt+V |                     alt+[KeyV] |         |
|                  Ctrl+Alt+KeyV |   v   |                Ctrl+Alt+V |     |                Ctrl+Alt+V |                     ctrl+alt+v |                Ctrl+Alt+V |                ctrl+alt+[KeyV] |         |
|                 Shift+Alt+KeyV |   V   |               Shift+Alt+V |     |               Shift+Alt+V |                    shift+alt+v |               Shift+Alt+V |               shift+alt+[KeyV] |         |
|            Ctrl+Shift+Alt+KeyV |   V   |          Ctrl+Shift+Alt+V |     |          Ctrl+Shift+Alt+V |               ctrl+shift+alt+v |          Ctrl+Shift+Alt+V |          ctrl+shift+alt+[KeyV] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyW |   w   |                         W |     |                         W |                              w |                         W |                         [KeyW] |         |
|                      Ctrl+KeyW |   w   |                    Ctrl+W |     |                    Ctrl+W |                         ctrl+w |                    Ctrl+W |                    ctrl+[KeyW] |         |
|                     Shift+KeyW |   W   |                   Shift+W |     |                   Shift+W |                        shift+w |                   Shift+W |                   shift+[KeyW] |         |
|                Ctrl+Shift+KeyW |   W   |              Ctrl+Shift+W |     |              Ctrl+Shift+W |                   ctrl+shift+w |              Ctrl+Shift+W |              ctrl+shift+[KeyW] |         |
|                       Alt+KeyW |   w   |                     Alt+W |     |                     Alt+W |                          alt+w |                     Alt+W |                     alt+[KeyW] |         |
|                  Ctrl+Alt+KeyW |   w   |                Ctrl+Alt+W |     |                Ctrl+Alt+W |                     ctrl+alt+w |                Ctrl+Alt+W |                ctrl+alt+[KeyW] |         |
|                 Shift+Alt+KeyW |   W   |               Shift+Alt+W |     |               Shift+Alt+W |                    shift+alt+w |               Shift+Alt+W |               shift+alt+[KeyW] |         |
|            Ctrl+Shift+Alt+KeyW |   W   |          Ctrl+Shift+Alt+W |     |          Ctrl+Shift+Alt+W |               ctrl+shift+alt+w |          Ctrl+Shift+Alt+W |          ctrl+shift+alt+[KeyW] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyX |   x   |                         X |     |                         X |                              x |                         X |                         [KeyX] |         |
|                      Ctrl+KeyX |   x   |                    Ctrl+X |     |                    Ctrl+X |                         ctrl+x |                    Ctrl+X |                    ctrl+[KeyX] |         |
|                     Shift+KeyX |   X   |                   Shift+X |     |                   Shift+X |                        shift+x |                   Shift+X |                   shift+[KeyX] |         |
|                Ctrl+Shift+KeyX |   X   |              Ctrl+Shift+X |     |              Ctrl+Shift+X |                   ctrl+shift+x |              Ctrl+Shift+X |              ctrl+shift+[KeyX] |         |
|                       Alt+KeyX |   x   |                     Alt+X |     |                     Alt+X |                          alt+x |                     Alt+X |                     alt+[KeyX] |         |
|                  Ctrl+Alt+KeyX |   x   |                Ctrl+Alt+X |     |                Ctrl+Alt+X |                     ctrl+alt+x |                Ctrl+Alt+X |                ctrl+alt+[KeyX] |         |
|                 Shift+Alt+KeyX |   X   |               Shift+Alt+X |     |               Shift+Alt+X |                    shift+alt+x |               Shift+Alt+X |               shift+alt+[KeyX] |         |
|            Ctrl+Shift+Alt+KeyX |   X   |          Ctrl+Shift+Alt+X |     |          Ctrl+Shift+Alt+X |               ctrl+shift+alt+x |          Ctrl+Shift+Alt+X |          ctrl+shift+alt+[KeyX] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyY |   y   |                         Y |     |                         Y |                              y |                         Y |                         [KeyY] |         |
|                      Ctrl+KeyY |   y   |                    Ctrl+Y |     |                    Ctrl+Y |                         ctrl+y |                    Ctrl+Y |                    ctrl+[KeyY] |         |
|                     Shift+KeyY |   Y   |                   Shift+Y |     |                   Shift+Y |                        shift+y |                   Shift+Y |                   shift+[KeyY] |         |
|                Ctrl+Shift+KeyY |   Y   |              Ctrl+Shift+Y |     |              Ctrl+Shift+Y |                   ctrl+shift+y |              Ctrl+Shift+Y |              ctrl+shift+[KeyY] |         |
|                       Alt+KeyY |   y   |                     Alt+Y |     |                     Alt+Y |                          alt+y |                     Alt+Y |                     alt+[KeyY] |         |
|                  Ctrl+Alt+KeyY |   y   |                Ctrl+Alt+Y |     |                Ctrl+Alt+Y |                     ctrl+alt+y |                Ctrl+Alt+Y |                ctrl+alt+[KeyY] |         |
|                 Shift+Alt+KeyY |   Y   |               Shift+Alt+Y |     |               Shift+Alt+Y |                    shift+alt+y |               Shift+Alt+Y |               shift+alt+[KeyY] |         |
|            Ctrl+Shift+Alt+KeyY |   Y   |          Ctrl+Shift+Alt+Y |     |          Ctrl+Shift+Alt+Y |               ctrl+shift+alt+y |          Ctrl+Shift+Alt+Y |          ctrl+shift+alt+[KeyY] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                           KeyZ |   z   |                         Z |     |                         Z |                              z |                         Z |                         [KeyZ] |         |
|                      Ctrl+KeyZ |   z   |                    Ctrl+Z |     |                    Ctrl+Z |                         ctrl+z |                    Ctrl+Z |                    ctrl+[KeyZ] |         |
|                     Shift+KeyZ |   Z   |                   Shift+Z |     |                   Shift+Z |                        shift+z |                   Shift+Z |                   shift+[KeyZ] |         |
|                Ctrl+Shift+KeyZ |   Z   |              Ctrl+Shift+Z |     |              Ctrl+Shift+Z |                   ctrl+shift+z |              Ctrl+Shift+Z |              ctrl+shift+[KeyZ] |         |
|                       Alt+KeyZ |   z   |                     Alt+Z |     |                     Alt+Z |                          alt+z |                     Alt+Z |                     alt+[KeyZ] |         |
|                  Ctrl+Alt+KeyZ |   z   |                Ctrl+Alt+Z |     |                Ctrl+Alt+Z |                     ctrl+alt+z |                Ctrl+Alt+Z |                ctrl+alt+[KeyZ] |         |
|                 Shift+Alt+KeyZ |   Z   |               Shift+Alt+Z |     |               Shift+Alt+Z |                    shift+alt+z |               Shift+Alt+Z |               shift+alt+[KeyZ] |         |
|            Ctrl+Shift+Alt+KeyZ |   Z   |          Ctrl+Shift+Alt+Z |     |          Ctrl+Shift+Alt+Z |               ctrl+shift+alt+z |          Ctrl+Shift+Alt+Z |          ctrl+shift+alt+[KeyZ] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit1 |   1   |                         1 |     |                         1 |                              1 |                         1 |                       [Digit1] |         |
|                    Ctrl+Digit1 |   1   |                    Ctrl+1 |     |                    Ctrl+1 |                         ctrl+1 |                    Ctrl+1 |                  ctrl+[Digit1] |         |
|                   Shift+Digit1 |   !   |                   Shift+1 |     |                   Shift+1 |                        shift+1 |                   Shift+1 |                 shift+[Digit1] |         |
|              Ctrl+Shift+Digit1 |   !   |              Ctrl+Shift+1 |     |              Ctrl+Shift+1 |                   ctrl+shift+1 |              Ctrl+Shift+1 |            ctrl+shift+[Digit1] |         |
|                     Alt+Digit1 |   1   |                     Alt+1 |     |                     Alt+1 |                          alt+1 |                     Alt+1 |                   alt+[Digit1] |         |
|                Ctrl+Alt+Digit1 |   1   |                Ctrl+Alt+1 |     |                Ctrl+Alt+1 |                     ctrl+alt+1 |                Ctrl+Alt+1 |              ctrl+alt+[Digit1] |         |
|               Shift+Alt+Digit1 |   !   |               Shift+Alt+1 |     |               Shift+Alt+1 |                    shift+alt+1 |               Shift+Alt+1 |             shift+alt+[Digit1] |         |
|          Ctrl+Shift+Alt+Digit1 |   !   |          Ctrl+Shift+Alt+1 |     |          Ctrl+Shift+Alt+1 |               ctrl+shift+alt+1 |          Ctrl+Shift+Alt+1 |        ctrl+shift+alt+[Digit1] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit2 |   2   |                         2 |     |                         2 |                              2 |                         2 |                       [Digit2] |         |
|                    Ctrl+Digit2 |   2   |                    Ctrl+2 |     |                    Ctrl+2 |                         ctrl+2 |                    Ctrl+2 |                  ctrl+[Digit2] |         |
|                   Shift+Digit2 |   @   |                   Shift+2 |     |                   Shift+2 |                        shift+2 |                   Shift+2 |                 shift+[Digit2] |         |
|              Ctrl+Shift+Digit2 |   @   |              Ctrl+Shift+2 |     |              Ctrl+Shift+2 |                   ctrl+shift+2 |              Ctrl+Shift+2 |            ctrl+shift+[Digit2] |         |
|                     Alt+Digit2 |   2   |                     Alt+2 |     |                     Alt+2 |                          alt+2 |                     Alt+2 |                   alt+[Digit2] |         |
|                Ctrl+Alt+Digit2 |   2   |                Ctrl+Alt+2 |     |                Ctrl+Alt+2 |                     ctrl+alt+2 |                Ctrl+Alt+2 |              ctrl+alt+[Digit2] |         |
|               Shift+Alt+Digit2 |   @   |               Shift+Alt+2 |     |               Shift+Alt+2 |                    shift+alt+2 |               Shift+Alt+2 |             shift+alt+[Digit2] |         |
|          Ctrl+Shift+Alt+Digit2 |   @   |          Ctrl+Shift+Alt+2 |     |          Ctrl+Shift+Alt+2 |               ctrl+shift+alt+2 |          Ctrl+Shift+Alt+2 |        ctrl+shift+alt+[Digit2] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit3 |   3   |                         3 |     |                         3 |                              3 |                         3 |                       [Digit3] |         |
|                    Ctrl+Digit3 |   3   |                    Ctrl+3 |     |                    Ctrl+3 |                         ctrl+3 |                    Ctrl+3 |                  ctrl+[Digit3] |         |
|                   Shift+Digit3 |   #   |                   Shift+3 |     |                   Shift+3 |                        shift+3 |                   Shift+3 |                 shift+[Digit3] |         |
|              Ctrl+Shift+Digit3 |   #   |              Ctrl+Shift+3 |     |              Ctrl+Shift+3 |                   ctrl+shift+3 |              Ctrl+Shift+3 |            ctrl+shift+[Digit3] |         |
|                     Alt+Digit3 |   3   |                     Alt+3 |     |                     Alt+3 |                          alt+3 |                     Alt+3 |                   alt+[Digit3] |         |
|                Ctrl+Alt+Digit3 |   3   |                Ctrl+Alt+3 |     |                Ctrl+Alt+3 |                     ctrl+alt+3 |                Ctrl+Alt+3 |              ctrl+alt+[Digit3] |         |
|               Shift+Alt+Digit3 |   #   |               Shift+Alt+3 |     |               Shift+Alt+3 |                    shift+alt+3 |               Shift+Alt+3 |             shift+alt+[Digit3] |         |
|          Ctrl+Shift+Alt+Digit3 |   #   |          Ctrl+Shift+Alt+3 |     |          Ctrl+Shift+Alt+3 |               ctrl+shift+alt+3 |          Ctrl+Shift+Alt+3 |        ctrl+shift+alt+[Digit3] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit4 |   4   |                         4 |     |                         4 |                              4 |                         4 |                       [Digit4] |         |
|                    Ctrl+Digit4 |   4   |                    Ctrl+4 |     |                    Ctrl+4 |                         ctrl+4 |                    Ctrl+4 |                  ctrl+[Digit4] |         |
|                   Shift+Digit4 |   $   |                   Shift+4 |     |                   Shift+4 |                        shift+4 |                   Shift+4 |                 shift+[Digit4] |         |
|              Ctrl+Shift+Digit4 |   $   |              Ctrl+Shift+4 |     |              Ctrl+Shift+4 |                   ctrl+shift+4 |              Ctrl+Shift+4 |            ctrl+shift+[Digit4] |         |
|                     Alt+Digit4 |   4   |                     Alt+4 |     |                     Alt+4 |                          alt+4 |                     Alt+4 |                   alt+[Digit4] |         |
|                Ctrl+Alt+Digit4 |   4   |                Ctrl+Alt+4 |     |                Ctrl+Alt+4 |                     ctrl+alt+4 |                Ctrl+Alt+4 |              ctrl+alt+[Digit4] |         |
|               Shift+Alt+Digit4 |   $   |               Shift+Alt+4 |     |               Shift+Alt+4 |                    shift+alt+4 |               Shift+Alt+4 |             shift+alt+[Digit4] |         |
|          Ctrl+Shift+Alt+Digit4 |   $   |          Ctrl+Shift+Alt+4 |     |          Ctrl+Shift+Alt+4 |               ctrl+shift+alt+4 |          Ctrl+Shift+Alt+4 |        ctrl+shift+alt+[Digit4] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit5 |   5   |                         5 |     |                         5 |                              5 |                         5 |                       [Digit5] |         |
|                    Ctrl+Digit5 |   5   |                    Ctrl+5 |     |                    Ctrl+5 |                         ctrl+5 |                    Ctrl+5 |                  ctrl+[Digit5] |         |
|                   Shift+Digit5 |   %   |                   Shift+5 |     |                   Shift+5 |                        shift+5 |                   Shift+5 |                 shift+[Digit5] |         |
|              Ctrl+Shift+Digit5 |   %   |              Ctrl+Shift+5 |     |              Ctrl+Shift+5 |                   ctrl+shift+5 |              Ctrl+Shift+5 |            ctrl+shift+[Digit5] |         |
|                     Alt+Digit5 |   5   |                     Alt+5 |     |                     Alt+5 |                          alt+5 |                     Alt+5 |                   alt+[Digit5] |         |
|                Ctrl+Alt+Digit5 |   5   |                Ctrl+Alt+5 |     |                Ctrl+Alt+5 |                     ctrl+alt+5 |                Ctrl+Alt+5 |              ctrl+alt+[Digit5] |         |
|               Shift+Alt+Digit5 |   %   |               Shift+Alt+5 |     |               Shift+Alt+5 |                    shift+alt+5 |               Shift+Alt+5 |             shift+alt+[Digit5] |         |
|          Ctrl+Shift+Alt+Digit5 |   %   |          Ctrl+Shift+Alt+5 |     |          Ctrl+Shift+Alt+5 |               ctrl+shift+alt+5 |          Ctrl+Shift+Alt+5 |        ctrl+shift+alt+[Digit5] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit6 |   6   |                         6 |     |                         6 |                              6 |                         6 |                       [Digit6] |         |
|                    Ctrl+Digit6 |   6   |                    Ctrl+6 |     |                    Ctrl+6 |                         ctrl+6 |                    Ctrl+6 |                  ctrl+[Digit6] |         |
|                   Shift+Digit6 |   ^   |                   Shift+6 |     |                   Shift+6 |                        shift+6 |                   Shift+6 |                 shift+[Digit6] |         |
|              Ctrl+Shift+Digit6 |   ^   |              Ctrl+Shift+6 |     |              Ctrl+Shift+6 |                   ctrl+shift+6 |              Ctrl+Shift+6 |            ctrl+shift+[Digit6] |         |
|                     Alt+Digit6 |   6   |                     Alt+6 |     |                     Alt+6 |                          alt+6 |                     Alt+6 |                   alt+[Digit6] |         |
|                Ctrl+Alt+Digit6 |   6   |                Ctrl+Alt+6 |     |                Ctrl+Alt+6 |                     ctrl+alt+6 |                Ctrl+Alt+6 |              ctrl+alt+[Digit6] |         |
|               Shift+Alt+Digit6 |   ^   |               Shift+Alt+6 |     |               Shift+Alt+6 |                    shift+alt+6 |               Shift+Alt+6 |             shift+alt+[Digit6] |         |
|          Ctrl+Shift+Alt+Digit6 |   ^   |          Ctrl+Shift+Alt+6 |     |          Ctrl+Shift+Alt+6 |               ctrl+shift+alt+6 |          Ctrl+Shift+Alt+6 |        ctrl+shift+alt+[Digit6] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit7 |   7   |                         7 |     |                         7 |                              7 |                         7 |                       [Digit7] |         |
|                    Ctrl+Digit7 |   7   |                    Ctrl+7 |     |                    Ctrl+7 |                         ctrl+7 |                    Ctrl+7 |                  ctrl+[Digit7] |         |
|                   Shift+Digit7 |   &   |                   Shift+7 |     |                   Shift+7 |                        shift+7 |                   Shift+7 |                 shift+[Digit7] |         |
|              Ctrl+Shift+Digit7 |   &   |              Ctrl+Shift+7 |     |              Ctrl+Shift+7 |                   ctrl+shift+7 |              Ctrl+Shift+7 |            ctrl+shift+[Digit7] |         |
|                     Alt+Digit7 |   7   |                     Alt+7 |     |                     Alt+7 |                          alt+7 |                     Alt+7 |                   alt+[Digit7] |         |
|                Ctrl+Alt+Digit7 |   7   |                Ctrl+Alt+7 |     |                Ctrl+Alt+7 |                     ctrl+alt+7 |                Ctrl+Alt+7 |              ctrl+alt+[Digit7] |         |
|               Shift+Alt+Digit7 |   &   |               Shift+Alt+7 |     |               Shift+Alt+7 |                    shift+alt+7 |               Shift+Alt+7 |             shift+alt+[Digit7] |         |
|          Ctrl+Shift+Alt+Digit7 |   &   |          Ctrl+Shift+Alt+7 |     |          Ctrl+Shift+Alt+7 |               ctrl+shift+alt+7 |          Ctrl+Shift+Alt+7 |        ctrl+shift+alt+[Digit7] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit8 |   8   |                         8 |     |                         8 |                              8 |                         8 |                       [Digit8] |         |
|                    Ctrl+Digit8 |   8   |                    Ctrl+8 |     |                    Ctrl+8 |                         ctrl+8 |                    Ctrl+8 |                  ctrl+[Digit8] |         |
|                   Shift+Digit8 |   *   |                   Shift+8 |     |                   Shift+8 |                        shift+8 |                   Shift+8 |                 shift+[Digit8] |         |
|              Ctrl+Shift+Digit8 |   *   |              Ctrl+Shift+8 |     |              Ctrl+Shift+8 |                   ctrl+shift+8 |              Ctrl+Shift+8 |            ctrl+shift+[Digit8] |         |
|                     Alt+Digit8 |   8   |                     Alt+8 |     |                     Alt+8 |                          alt+8 |                     Alt+8 |                   alt+[Digit8] |         |
|                Ctrl+Alt+Digit8 |   8   |                Ctrl+Alt+8 |     |                Ctrl+Alt+8 |                     ctrl+alt+8 |                Ctrl+Alt+8 |              ctrl+alt+[Digit8] |         |
|               Shift+Alt+Digit8 |   *   |               Shift+Alt+8 |     |               Shift+Alt+8 |                    shift+alt+8 |               Shift+Alt+8 |             shift+alt+[Digit8] |         |
|          Ctrl+Shift+Alt+Digit8 |   *   |          Ctrl+Shift+Alt+8 |     |          Ctrl+Shift+Alt+8 |               ctrl+shift+alt+8 |          Ctrl+Shift+Alt+8 |        ctrl+shift+alt+[Digit8] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit9 |   9   |                         9 |     |                         9 |                              9 |                         9 |                       [Digit9] |         |
|                    Ctrl+Digit9 |   9   |                    Ctrl+9 |     |                    Ctrl+9 |                         ctrl+9 |                    Ctrl+9 |                  ctrl+[Digit9] |         |
|                   Shift+Digit9 |   (   |                   Shift+9 |     |                   Shift+9 |                        shift+9 |                   Shift+9 |                 shift+[Digit9] |         |
|              Ctrl+Shift+Digit9 |   (   |              Ctrl+Shift+9 |     |              Ctrl+Shift+9 |                   ctrl+shift+9 |              Ctrl+Shift+9 |            ctrl+shift+[Digit9] |         |
|                     Alt+Digit9 |   9   |                     Alt+9 |     |                     Alt+9 |                          alt+9 |                     Alt+9 |                   alt+[Digit9] |         |
|                Ctrl+Alt+Digit9 |   9   |                Ctrl+Alt+9 |     |                Ctrl+Alt+9 |                     ctrl+alt+9 |                Ctrl+Alt+9 |              ctrl+alt+[Digit9] |         |
|               Shift+Alt+Digit9 |   (   |               Shift+Alt+9 |     |               Shift+Alt+9 |                    shift+alt+9 |               Shift+Alt+9 |             shift+alt+[Digit9] |         |
|          Ctrl+Shift+Alt+Digit9 |   (   |          Ctrl+Shift+Alt+9 |     |          Ctrl+Shift+Alt+9 |               ctrl+shift+alt+9 |          Ctrl+Shift+Alt+9 |        ctrl+shift+alt+[Digit9] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Digit0 |   0   |                         0 |     |                         0 |                              0 |                         0 |                       [Digit0] |         |
|                    Ctrl+Digit0 |   0   |                    Ctrl+0 |     |                    Ctrl+0 |                         ctrl+0 |                    Ctrl+0 |                  ctrl+[Digit0] |         |
|                   Shift+Digit0 |   )   |                   Shift+0 |     |                   Shift+0 |                        shift+0 |                   Shift+0 |                 shift+[Digit0] |         |
|              Ctrl+Shift+Digit0 |   )   |              Ctrl+Shift+0 |     |              Ctrl+Shift+0 |                   ctrl+shift+0 |              Ctrl+Shift+0 |            ctrl+shift+[Digit0] |         |
|                     Alt+Digit0 |   0   |                     Alt+0 |     |                     Alt+0 |                          alt+0 |                     Alt+0 |                   alt+[Digit0] |         |
|                Ctrl+Alt+Digit0 |   0   |                Ctrl+Alt+0 |     |                Ctrl+Alt+0 |                     ctrl+alt+0 |                Ctrl+Alt+0 |              ctrl+alt+[Digit0] |         |
|               Shift+Alt+Digit0 |   )   |               Shift+Alt+0 |     |               Shift+Alt+0 |                    shift+alt+0 |               Shift+Alt+0 |             shift+alt+[Digit0] |         |
|          Ctrl+Shift+Alt+Digit0 |   )   |          Ctrl+Shift+Alt+0 |     |          Ctrl+Shift+Alt+0 |               ctrl+shift+alt+0 |          Ctrl+Shift+Alt+0 |        ctrl+shift+alt+[Digit0] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                          Minus |   -   |                         - |     |                         - |                              - |                         - |                        [Minus] |         |
|                     Ctrl+Minus |   -   |                    Ctrl+- |     |                    Ctrl+- |                         ctrl+- |                    Ctrl+- |                   ctrl+[Minus] |         |
|                    Shift+Minus |   _   |                   Shift+- |     |                   Shift+- |                        shift+- |                   Shift+- |                  shift+[Minus] |         |
|               Ctrl+Shift+Minus |   _   |              Ctrl+Shift+- |     |              Ctrl+Shift+- |                   ctrl+shift+- |              Ctrl+Shift+- |             ctrl+shift+[Minus] |         |
|                      Alt+Minus |   -   |                     Alt+- |     |                     Alt+- |                          alt+- |                     Alt+- |                    alt+[Minus] |         |
|                 Ctrl+Alt+Minus |   -   |                Ctrl+Alt+- |     |                Ctrl+Alt+- |                     ctrl+alt+- |                Ctrl+Alt+- |               ctrl+alt+[Minus] |         |
|                Shift+Alt+Minus |   _   |               Shift+Alt+- |     |               Shift+Alt+- |                    shift+alt+- |               Shift+Alt+- |              shift+alt+[Minus] |         |
|           Ctrl+Shift+Alt+Minus |   _   |          Ctrl+Shift+Alt+- |     |          Ctrl+Shift+Alt+- |               ctrl+shift+alt+- |          Ctrl+Shift+Alt+- |         ctrl+shift+alt+[Minus] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                          Equal |   =   |                         = |     |                         = |                              = |                         = |                        [Equal] |         |
|                     Ctrl+Equal |   =   |                    Ctrl+= |     |                    Ctrl+= |                         ctrl+= |                    Ctrl+= |                   ctrl+[Equal] |         |
|                    Shift+Equal |   +   |                   Shift+= |     |                   Shift+= |                        shift+= |                   Shift+= |                  shift+[Equal] |         |
|               Ctrl+Shift+Equal |   +   |              Ctrl+Shift+= |     |              Ctrl+Shift+= |                   ctrl+shift+= |              Ctrl+Shift+= |             ctrl+shift+[Equal] |         |
|                      Alt+Equal |   =   |                     Alt+= |     |                     Alt+= |                          alt+= |                     Alt+= |                    alt+[Equal] |         |
|                 Ctrl+Alt+Equal |   =   |                Ctrl+Alt+= |     |                Ctrl+Alt+= |                     ctrl+alt+= |                Ctrl+Alt+= |               ctrl+alt+[Equal] |         |
|                Shift+Alt+Equal |   +   |               Shift+Alt+= |     |               Shift+Alt+= |                    shift+alt+= |               Shift+Alt+= |              shift+alt+[Equal] |         |
|           Ctrl+Shift+Alt+Equal |   +   |          Ctrl+Shift+Alt+= |     |          Ctrl+Shift+Alt+= |               ctrl+shift+alt+= |          Ctrl+Shift+Alt+= |         ctrl+shift+alt+[Equal] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                    BracketLeft |   [   |                         [ |     |                         [ |                              [ |                         [ |                  [BracketLeft] |         |
|               Ctrl+BracketLeft |   [   |                    Ctrl+[ |     |                    Ctrl+[ |                         ctrl+[ |                    Ctrl+[ |             ctrl+[BracketLeft] |         |
|              Shift+BracketLeft |   {   |                   Shift+[ |     |                   Shift+[ |                        shift+[ |                   Shift+[ |            shift+[BracketLeft] |         |
|         Ctrl+Shift+BracketLeft |   {   |              Ctrl+Shift+[ |     |              Ctrl+Shift+[ |                   ctrl+shift+[ |              Ctrl+Shift+[ |       ctrl+shift+[BracketLeft] |         |
|                Alt+BracketLeft |   [   |                     Alt+[ |     |                     Alt+[ |                          alt+[ |                     Alt+[ |              alt+[BracketLeft] |         |
|           Ctrl+Alt+BracketLeft |   [   |                Ctrl+Alt+[ |     |                Ctrl+Alt+[ |                     ctrl+alt+[ |                Ctrl+Alt+[ |         ctrl+alt+[BracketLeft] |         |
|          Shift+Alt+BracketLeft |   {   |               Shift+Alt+[ |     |               Shift+Alt+[ |                    shift+alt+[ |               Shift+Alt+[ |        shift+alt+[BracketLeft] |         |
|     Ctrl+Shift+Alt+BracketLeft |   {   |          Ctrl+Shift+Alt+[ |     |          Ctrl+Shift+Alt+[ |               ctrl+shift+alt+[ |          Ctrl+Shift+Alt+[ |   ctrl+shift+alt+[BracketLeft] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                   BracketRight |   ]   |                         ] |     |                         ] |                              ] |                         ] |                 [BracketRight] |         |
|              Ctrl+BracketRight |   ]   |                    Ctrl+] |     |                    Ctrl+] |                         ctrl+] |                    Ctrl+] |            ctrl+[BracketRight] |         |
|             Shift+BracketRight |   }   |                   Shift+] |     |                   Shift+] |                        shift+] |                   Shift+] |           shift+[BracketRight] |         |
|        Ctrl+Shift+BracketRight |   }   |              Ctrl+Shift+] |     |              Ctrl+Shift+] |                   ctrl+shift+] |              Ctrl+Shift+] |      ctrl+shift+[BracketRight] |         |
|               Alt+BracketRight |   ]   |                     Alt+] |     |                     Alt+] |                          alt+] |                     Alt+] |             alt+[BracketRight] |         |
|          Ctrl+Alt+BracketRight |   ]   |                Ctrl+Alt+] |     |                Ctrl+Alt+] |                     ctrl+alt+] |                Ctrl+Alt+] |        ctrl+alt+[BracketRight] |         |
|         Shift+Alt+BracketRight |   }   |               Shift+Alt+] |     |               Shift+Alt+] |                    shift+alt+] |               Shift+Alt+] |       shift+alt+[BracketRight] |         |
|    Ctrl+Shift+Alt+BracketRight |   }   |          Ctrl+Shift+Alt+] |     |          Ctrl+Shift+Alt+] |               ctrl+shift+alt+] |          Ctrl+Shift+Alt+] |  ctrl+shift+alt+[BracketRight] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                      Backslash |   \   |                         \ |     |                         \ |                              \ |                         \ |                    [Backslash] |         |
|                 Ctrl+Backslash |   \   |                    Ctrl+\ |     |                    Ctrl+\ |                         ctrl+\ |                    Ctrl+\ |               ctrl+[Backslash] |         |
|                Shift+Backslash |   |   |                   Shift+\ |   1 |                   Shift+\ |                        shift+\ |                   Shift+\ |              shift+[Backslash] |         |
|           Ctrl+Shift+Backslash |   |   |              Ctrl+Shift+\ |     |              Ctrl+Shift+\ |                   ctrl+shift+\ |              Ctrl+Shift+\ |         ctrl+shift+[Backslash] |         |
|                  Alt+Backslash |   \   |                     Alt+\ |     |                     Alt+\ |                          alt+\ |                     Alt+\ |                alt+[Backslash] |         |
|             Ctrl+Alt+Backslash |   \   |                Ctrl+Alt+\ |     |                Ctrl+Alt+\ |                     ctrl+alt+\ |                Ctrl+Alt+\ |           ctrl+alt+[Backslash] |         |
|            Shift+Alt+Backslash |   |   |               Shift+Alt+\ |     |               Shift+Alt+\ |                    shift+alt+\ |               Shift+Alt+\ |          shift+alt+[Backslash] |         |
|       Ctrl+Shift+Alt+Backslash |   |   |          Ctrl+Shift+Alt+\ |     |          Ctrl+Shift+Alt+\ |               ctrl+shift+alt+\ |          Ctrl+Shift+Alt+\ |     ctrl+shift+alt+[Backslash] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                       IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|                  Ctrl+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|                 Shift+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|            Ctrl+Shift+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|                   Alt+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|              Ctrl+Alt+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|             Shift+Alt+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
|        Ctrl+Shift+Alt+IntlHash |  ---  |                           |     |                      null |                           null |                      null |                           null |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                      Semicolon |   ;   |                         ; |     |                         ; |                              ; |                         ; |                    [Semicolon] |         |
|                 Ctrl+Semicolon |   ;   |                    Ctrl+; |     |                    Ctrl+; |                         ctrl+; |                    Ctrl+; |               ctrl+[Semicolon] |         |
|                Shift+Semicolon |   :   |                   Shift+; |     |                   Shift+; |                        shift+; |                   Shift+; |              shift+[Semicolon] |         |
|           Ctrl+Shift+Semicolon |   :   |              Ctrl+Shift+; |     |              Ctrl+Shift+; |                   ctrl+shift+; |              Ctrl+Shift+; |         ctrl+shift+[Semicolon] |         |
|                  Alt+Semicolon |   ;   |                     Alt+; |     |                     Alt+; |                          alt+; |                     Alt+; |                alt+[Semicolon] |         |
|             Ctrl+Alt+Semicolon |   ;   |                Ctrl+Alt+; |     |                Ctrl+Alt+; |                     ctrl+alt+; |                Ctrl+Alt+; |           ctrl+alt+[Semicolon] |         |
|            Shift+Alt+Semicolon |   :   |               Shift+Alt+; |     |               Shift+Alt+; |                    shift+alt+; |               Shift+Alt+; |          shift+alt+[Semicolon] |         |
|       Ctrl+Shift+Alt+Semicolon |   :   |          Ctrl+Shift+Alt+; |     |          Ctrl+Shift+Alt+; |               ctrl+shift+alt+; |          Ctrl+Shift+Alt+; |     ctrl+shift+alt+[Semicolon] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                          Quote |   '   |                         ' |     |                         ' |                              ' |                         ' |                        [Quote] |         |
|                     Ctrl+Quote |   '   |                    Ctrl+' |     |                    Ctrl+' |                         ctrl+' |                    Ctrl+' |                   ctrl+[Quote] |         |
|                    Shift+Quote |   "   |                   Shift+' |     |                   Shift+' |                        shift+' |                   Shift+' |                  shift+[Quote] |         |
|               Ctrl+Shift+Quote |   "   |              Ctrl+Shift+' |     |              Ctrl+Shift+' |                   ctrl+shift+' |              Ctrl+Shift+' |             ctrl+shift+[Quote] |         |
|                      Alt+Quote |   '   |                     Alt+' |     |                     Alt+' |                          alt+' |                     Alt+' |                    alt+[Quote] |         |
|                 Ctrl+Alt+Quote |   '   |                Ctrl+Alt+' |     |                Ctrl+Alt+' |                     ctrl+alt+' |                Ctrl+Alt+' |               ctrl+alt+[Quote] |         |
|                Shift+Alt+Quote |   "   |               Shift+Alt+' |     |               Shift+Alt+' |                    shift+alt+' |               Shift+Alt+' |              shift+alt+[Quote] |         |
|           Ctrl+Shift+Alt+Quote |   "   |          Ctrl+Shift+Alt+' |     |          Ctrl+Shift+Alt+' |               ctrl+shift+alt+' |          Ctrl+Shift+Alt+' |         ctrl+shift+alt+[Quote] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                      Backquote |   `   |                         ` |     |                         ` |                              ` |                         ` |                    [Backquote] |         |
|                 Ctrl+Backquote |   `   |                    Ctrl+` |     |                    Ctrl+` |                         ctrl+` |                    Ctrl+` |               ctrl+[Backquote] |         |
|                Shift+Backquote |   ~   |                   Shift+` |     |                   Shift+` |                        shift+` |                   Shift+` |              shift+[Backquote] |         |
|           Ctrl+Shift+Backquote |   ~   |              Ctrl+Shift+` |     |              Ctrl+Shift+` |                   ctrl+shift+` |              Ctrl+Shift+` |         ctrl+shift+[Backquote] |         |
|                  Alt+Backquote |   `   |                     Alt+` |     |                     Alt+` |                          alt+` |                     Alt+` |                alt+[Backquote] |         |
|             Ctrl+Alt+Backquote |   `   |                Ctrl+Alt+` |     |                Ctrl+Alt+` |                     ctrl+alt+` |                Ctrl+Alt+` |           ctrl+alt+[Backquote] |         |
|            Shift+Alt+Backquote |   ~   |               Shift+Alt+` |     |               Shift+Alt+` |                    shift+alt+` |               Shift+Alt+` |          shift+alt+[Backquote] |         |
|       Ctrl+Shift+Alt+Backquote |   ~   |          Ctrl+Shift+Alt+` |     |          Ctrl+Shift+Alt+` |               ctrl+shift+alt+` |          Ctrl+Shift+Alt+` |     ctrl+shift+alt+[Backquote] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                          Comma |   ,   |                         , |     |                         , |                              , |                         , |                        [Comma] |         |
|                     Ctrl+Comma |   ,   |                    Ctrl+, |     |                    Ctrl+, |                         ctrl+, |                    Ctrl+, |                   ctrl+[Comma] |         |
|                    Shift+Comma |   <   |                   Shift+, |   1 |                   Shift+, |                        shift+, |                   Shift+, |                  shift+[Comma] |         |
|               Ctrl+Shift+Comma |   <   |              Ctrl+Shift+, |   1 |              Ctrl+Shift+, |                   ctrl+shift+, |              Ctrl+Shift+, |             ctrl+shift+[Comma] |         |
|                      Alt+Comma |   ,   |                     Alt+, |     |                     Alt+, |                          alt+, |                     Alt+, |                    alt+[Comma] |         |
|                 Ctrl+Alt+Comma |   ,   |                Ctrl+Alt+, |     |                Ctrl+Alt+, |                     ctrl+alt+, |                Ctrl+Alt+, |               ctrl+alt+[Comma] |         |
|                Shift+Alt+Comma |   <   |               Shift+Alt+, |   1 |               Shift+Alt+, |                    shift+alt+, |               Shift+Alt+, |              shift+alt+[Comma] |         |
|           Ctrl+Shift+Alt+Comma |   <   |          Ctrl+Shift+Alt+, |     |          Ctrl+Shift+Alt+, |               ctrl+shift+alt+, |          Ctrl+Shift+Alt+, |         ctrl+shift+alt+[Comma] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                         Period |   .   |                         . |     |                         . |                              . |                         . |                       [Period] |         |
|                    Ctrl+Period |   .   |                    Ctrl+. |     |                    Ctrl+. |                         ctrl+. |                    Ctrl+. |                  ctrl+[Period] |         |
|                   Shift+Period |   >   |                   Shift+. |   1 |                   Shift+. |                        shift+. |                   Shift+. |                 shift+[Period] |         |
|              Ctrl+Shift+Period |   >   |              Ctrl+Shift+. |   1 |              Ctrl+Shift+. |                   ctrl+shift+. |              Ctrl+Shift+. |            ctrl+shift+[Period] |         |
|                     Alt+Period |   .   |                     Alt+. |     |                     Alt+. |                          alt+. |                     Alt+. |                   alt+[Period] |         |
|                Ctrl+Alt+Period |   .   |                Ctrl+Alt+. |     |                Ctrl+Alt+. |                     ctrl+alt+. |                Ctrl+Alt+. |              ctrl+alt+[Period] |         |
|               Shift+Alt+Period |   >   |               Shift+Alt+. |   1 |               Shift+Alt+. |                    shift+alt+. |               Shift+Alt+. |             shift+alt+[Period] |         |
|          Ctrl+Shift+Alt+Period |   >   |          Ctrl+Shift+Alt+. |   1 |          Ctrl+Shift+Alt+. |               ctrl+shift+alt+. |          Ctrl+Shift+Alt+. |        ctrl+shift+alt+[Period] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                          Slash |   /   |                         / |     |                         / |                              / |                         / |                        [Slash] |         |
|                     Ctrl+Slash |   /   |                    Ctrl+/ |     |                    Ctrl+/ |                         ctrl+/ |                    Ctrl+/ |                   ctrl+[Slash] |         |
|                    Shift+Slash |   ?   |                   Shift+/ |     |                   Shift+/ |                        shift+/ |                   Shift+/ |                  shift+[Slash] |         |
|               Ctrl+Shift+Slash |   ?   |              Ctrl+Shift+/ |     |              Ctrl+Shift+/ |                   ctrl+shift+/ |              Ctrl+Shift+/ |             ctrl+shift+[Slash] |         |
|                      Alt+Slash |   /   |                     Alt+/ |     |                     Alt+/ |                          alt+/ |                     Alt+/ |                    alt+[Slash] |         |
|                 Ctrl+Alt+Slash |   /   |                Ctrl+Alt+/ |     |                Ctrl+Alt+/ |                     ctrl+alt+/ |                Ctrl+Alt+/ |               ctrl+alt+[Slash] |         |
|                Shift+Alt+Slash |   ?   |               Shift+Alt+/ |     |               Shift+Alt+/ |                    shift+alt+/ |               Shift+Alt+/ |              shift+alt+[Slash] |         |
|           Ctrl+Shift+Alt+Slash |   ?   |          Ctrl+Shift+Alt+/ |     |          Ctrl+Shift+Alt+/ |               ctrl+shift+alt+/ |          Ctrl+Shift+Alt+/ |         ctrl+shift+alt+[Slash] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|       HW Code combination      |  Key  |    KeyCode combination    | Pri |          UI label         |         User settings          |    Electron accelerator   |       Dispatching string       | WYSIWYG |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                        ArrowUp |  ---  |                   UpArrow |     |                   UpArrow |                             up |                        Up |                      [ArrowUp] |         |
|                   Ctrl+ArrowUp |  ---  |              Ctrl+UpArrow |     |              Ctrl+UpArrow |                        ctrl+up |                   Ctrl+Up |                 ctrl+[ArrowUp] |         |
|                  Shift+ArrowUp |  ---  |             Shift+UpArrow |     |             Shift+UpArrow |                       shift+up |                  Shift+Up |                shift+[ArrowUp] |         |
|             Ctrl+Shift+ArrowUp |  ---  |        Ctrl+Shift+UpArrow |     |        Ctrl+Shift+UpArrow |                  ctrl+shift+up |             Ctrl+Shift+Up |           ctrl+shift+[ArrowUp] |         |
|                    Alt+ArrowUp |  ---  |               Alt+UpArrow |     |               Alt+UpArrow |                         alt+up |                    Alt+Up |                  alt+[ArrowUp] |         |
|               Ctrl+Alt+ArrowUp |  ---  |          Ctrl+Alt+UpArrow |     |          Ctrl+Alt+UpArrow |                    ctrl+alt+up |               Ctrl+Alt+Up |             ctrl+alt+[ArrowUp] |         |
|              Shift+Alt+ArrowUp |  ---  |         Shift+Alt+UpArrow |     |         Shift+Alt+UpArrow |                   shift+alt+up |              Shift+Alt+Up |            shift+alt+[ArrowUp] |         |
|         Ctrl+Shift+Alt+ArrowUp |  ---  |    Ctrl+Shift+Alt+UpArrow |     |    Ctrl+Shift+Alt+UpArrow |              ctrl+shift+alt+up |         Ctrl+Shift+Alt+Up |       ctrl+shift+alt+[ArrowUp] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                        Numpad0 |  ---  |                   NumPad0 |     |                   NumPad0 |                        numpad0 |                      null |                      [Numpad0] |         |
|                   Ctrl+Numpad0 |  ---  |              Ctrl+NumPad0 |     |              Ctrl+NumPad0 |                   ctrl+numpad0 |                      null |                 ctrl+[Numpad0] |         |
|                  Shift+Numpad0 |  ---  |             Shift+NumPad0 |     |             Shift+NumPad0 |                  shift+numpad0 |                      null |                shift+[Numpad0] |         |
|             Ctrl+Shift+Numpad0 |  ---  |        Ctrl+Shift+NumPad0 |     |        Ctrl+Shift+NumPad0 |             ctrl+shift+numpad0 |                      null |           ctrl+shift+[Numpad0] |         |
|                    Alt+Numpad0 |  ---  |               Alt+NumPad0 |     |               Alt+NumPad0 |                    alt+numpad0 |                      null |                  alt+[Numpad0] |         |
|               Ctrl+Alt+Numpad0 |  ---  |          Ctrl+Alt+NumPad0 |     |          Ctrl+Alt+NumPad0 |               ctrl+alt+numpad0 |                      null |             ctrl+alt+[Numpad0] |         |
|              Shift+Alt+Numpad0 |  ---  |         Shift+Alt+NumPad0 |     |         Shift+Alt+NumPad0 |              shift+alt+numpad0 |                      null |            shift+alt+[Numpad0] |         |
|         Ctrl+Shift+Alt+Numpad0 |  ---  |    Ctrl+Shift+Alt+NumPad0 |     |    Ctrl+Shift+Alt+NumPad0 |         ctrl+shift+alt+numpad0 |                      null |       ctrl+shift+alt+[Numpad0] |         |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                  IntlBackslash |   <   |                   Shift+, |   2 |                         < |                [IntlBackslash] |                      null |                [IntlBackslash] |    NO   |
|             Ctrl+IntlBackslash |   <   |              Ctrl+Shift+, |   2 |                    Ctrl+< |           ctrl+[IntlBackslash] |                      null |           ctrl+[IntlBackslash] |    NO   |
|            Shift+IntlBackslash |   >   |                   Shift+. |   2 |                   Shift+< |          shift+[IntlBackslash] |                      null |          shift+[IntlBackslash] |    NO   |
|       Ctrl+Shift+IntlBackslash |   >   |              Ctrl+Shift+. |   2 |              Ctrl+Shift+< |     ctrl+shift+[IntlBackslash] |                      null |     ctrl+shift+[IntlBackslash] |    NO   |
|              Alt+IntlBackslash |   <   |               Shift+Alt+, |   2 |                     Alt+< |            alt+[IntlBackslash] |                      null |            alt+[IntlBackslash] |    NO   |
|         Ctrl+Alt+IntlBackslash |   |   |                   Shift+\ |   2 |                Ctrl+Alt+< |       ctrl+alt+[IntlBackslash] |                      null |       ctrl+alt+[IntlBackslash] |    NO   |
|        Shift+Alt+IntlBackslash |   >   |               Shift+Alt+. |   2 |               Shift+Alt+< |      shift+alt+[IntlBackslash] |                      null |      shift+alt+[IntlBackslash] |    NO   |
|   Ctrl+Shift+Alt+IntlBackslash |   ¦   |          Ctrl+Shift+Alt+. |   2 |          Ctrl+Shift+Alt+< | ctrl+shift+alt+[IntlBackslash] |                      null | ctrl+shift+alt+[IntlBackslash] |    NO   |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Raw mapping:
{
	"Sleep": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"WakeUp": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"KeyA": {
		"value": "a",
		"withShift": "A",
		"withAltGr": "a",
		"withShiftAltGr": "A"
	},
	"KeyB": {
		"value": "b",
		"withShift": "B",
		"withAltGr": "b",
		"withShiftAltGr": "B"
	},
	"KeyC": {
		"value": "c",
		"withShift": "C",
		"withAltGr": "c",
		"withShiftAltGr": "C"
	},
	"KeyD": {
		"value": "d",
		"withShift": "D",
		"withAltGr": "d",
		"withShiftAltGr": "D"
	},
	"KeyE": {
		"value": "e",
		"withShift": "E",
		"withAltGr": "e",
		"withShiftAltGr": "E"
	},
	"KeyF": {
		"value": "f",
		"withShift": "F",
		"withAltGr": "f",
		"withShiftAltGr": "F"
	},
	"KeyG": {
		"value": "g",
		"withShift": "G",
		"withAltGr": "g",
		"withShiftAltGr": "G"
	},
	"KeyH": {
		"value": "h",
		"withShift": "H",
		"withAltGr": "h",
		"withShiftAltGr": "H"
	},
	"KeyI": {
		"value": "i",
		"withShift": "I",
		"withAltGr": "i",
		"withShiftAltGr": "I"
	},
	"KeyJ": {
		"value": "j",
		"withShift": "J",
		"withAltGr": "j",
		"withShiftAltGr": "J"
	},
	"KeyK": {
		"value": "k",
		"withShift": "K",
		"withAltGr": "k",
		"withShiftAltGr": "K"
	},
	"KeyL": {
		"value": "l",
		"withShift": "L",
		"withAltGr": "l",
		"withShiftAltGr": "L"
	},
	"KeyM": {
		"value": "m",
		"withShift": "M",
		"withAltGr": "m",
		"withShiftAltGr": "M"
	},
	"KeyN": {
		"value": "n",
		"withShift": "N",
		"withAltGr": "n",
		"withShiftAltGr": "N"
	},
	"KeyO": {
		"value": "o",
		"withShift": "O",
		"withAltGr": "o",
		"withShiftAltGr": "O"
	},
	"KeyP": {
		"value": "p",
		"withShift": "P",
		"withAltGr": "p",
		"withShiftAltGr": "P"
	},
	"KeyQ": {
		"value": "q",
		"withShift": "Q",
		"withAltGr": "q",
		"withShiftAltGr": "Q"
	},
	"KeyR": {
		"value": "r",
		"withShift": "R",
		"withAltGr": "r",
		"withShiftAltGr": "R"
	},
	"KeyS": {
		"value": "s",
		"withShift": "S",
		"withAltGr": "s",
		"withShiftAltGr": "S"
	},
	"KeyT": {
		"value": "t",
		"withShift": "T",
		"withAltGr": "t",
		"withShiftAltGr": "T"
	},
	"KeyU": {
		"value": "u",
		"withShift": "U",
		"withAltGr": "u",
		"withShiftAltGr": "U"
	},
	"KeyV": {
		"value": "v",
		"withShift": "V",
		"withAltGr": "v",
		"withShiftAltGr": "V"
	},
	"KeyW": {
		"value": "w",
		"withShift": "W",
		"withAltGr": "w",
		"withShiftAltGr": "W"
	},
	"KeyX": {
		"value": "x",
		"withShift": "X",
		"withAltGr": "x",
		"withShiftAltGr": "X"
	},
	"KeyY": {
		"value": "y",
		"withShift": "Y",
		"withAltGr": "y",
		"withShiftAltGr": "Y"
	},
	"KeyZ": {
		"value": "z",
		"withShift": "Z",
		"withAltGr": "z",
		"withShiftAltGr": "Z"
	},
	"Digit1": {
		"value": "1",
		"withShift": "!",
		"withAltGr": "1",
		"withShiftAltGr": "!"
	},
	"Digit2": {
		"value": "2",
		"withShift": "@",
		"withAltGr": "2",
		"withShiftAltGr": "@"
	},
	"Digit3": {
		"value": "3",
		"withShift": "#",
		"withAltGr": "3",
		"withShiftAltGr": "#"
	},
	"Digit4": {
		"value": "4",
		"withShift": "$",
		"withAltGr": "4",
		"withShiftAltGr": "$"
	},
	"Digit5": {
		"value": "5",
		"withShift": "%",
		"withAltGr": "5",
		"withShiftAltGr": "%"
	},
	"Digit6": {
		"value": "6",
		"withShift": "^",
		"withAltGr": "6",
		"withShiftAltGr": "^"
	},
	"Digit7": {
		"value": "7",
		"withShift": "&",
		"withAltGr": "7",
		"withShiftAltGr": "&"
	},
	"Digit8": {
		"value": "8",
		"withShift": "*",
		"withAltGr": "8",
		"withShiftAltGr": "*"
	},
	"Digit9": {
		"value": "9",
		"withShift": "(",
		"withAltGr": "9",
		"withShiftAltGr": "("
	},
	"Digit0": {
		"value": "0",
		"withShift": ")",
		"withAltGr": "0",
		"withShiftAltGr": ")"
	},
	"Enter": {
		"value": "\r",
		"withShift": "\r",
		"withAltGr": "\r",
		"withShiftAltGr": "\r"
	},
	"Escape": {
		"value": "\u001b",
		"withShift": "\u001b",
		"withAltGr": "\u001b",
		"withShiftAltGr": "\u001b"
	},
	"Backspace": {
		"value": "\b",
		"withShift": "\b",
		"withAltGr": "\b",
		"withShiftAltGr": "\b"
	},
	"Tab": {
		"value": "\t",
		"withShift": "",
		"withAltGr": "\t",
		"withShiftAltGr": ""
	},
	"Space": {
		"value": " ",
		"withShift": " ",
		"withAltGr": " ",
		"withShiftAltGr": " "
	},
	"Minus": {
		"value": "-",
		"withShift": "_",
		"withAltGr": "-",
		"withShiftAltGr": "_"
	},
	"Equal": {
		"value": "=",
		"withShift": "+",
		"withAltGr": "=",
		"withShiftAltGr": "+"
	},
	"BracketLeft": {
		"value": "[",
		"withShift": "{",
		"withAltGr": "[",
		"withShiftAltGr": "{"
	},
	"BracketRight": {
		"value": "]",
		"withShift": "}",
		"withAltGr": "]",
		"withShiftAltGr": "}"
	},
	"Backslash": {
		"value": "\\",
		"withShift": "|",
		"withAltGr": "\\",
		"withShiftAltGr": "|"
	},
	"Semicolon": {
		"value": ";",
		"withShift": ":",
		"withAltGr": ";",
		"withShiftAltGr": ":"
	},
	"Quote": {
		"value": "'",
		"withShift": "\"",
		"withAltGr": "'",
		"withShiftAltGr": "\""
	},
	"Backquote": {
		"value": "`",
		"withShift": "~",
		"withAltGr": "`",
		"withShiftAltGr": "~"
	},
	"Comma": {
		"value": ",",
		"withShift": "<",
		"withAltGr": ",",
		"withShiftAltGr": "<"
	},
	"Period": {
		"value": ".",
		"withShift": ">",
		"withAltGr": ".",
		"withShiftAltGr": ">"
	},
	"Slash": {
		"value": "/",
		"withShift": "?",
		"withAltGr": "/",
		"withShiftAltGr": "?"
	},
	"CapsLock": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F1": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F2": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F3": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F4": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F5": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F6": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F7": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F8": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F9": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F10": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F11": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F12": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"PrintScreen": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ScrollLock": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Pause": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Insert": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Home": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"PageUp": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Delete": {
		"value": "�",
		"withShift": "�",
		"withAltGr": "�",
		"withShiftAltGr": "�"
	},
	"End": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"PageDown": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ArrowRight": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ArrowLeft": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ArrowDown": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ArrowUp": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"NumLock": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"NumpadDivide": {
		"value": "/",
		"withShift": "/",
		"withAltGr": "/",
		"withShiftAltGr": "/"
	},
	"NumpadMultiply": {
		"value": "*",
		"withShift": "*",
		"withAltGr": "*",
		"withShiftAltGr": "*"
	},
	"NumpadSubtract": {
		"value": "-",
		"withShift": "-",
		"withAltGr": "-",
		"withShiftAltGr": "-"
	},
	"NumpadAdd": {
		"value": "+",
		"withShift": "+",
		"withAltGr": "+",
		"withShiftAltGr": "+"
	},
	"NumpadEnter": {
		"value": "\r",
		"withShift": "\r",
		"withAltGr": "\r",
		"withShiftAltGr": "\r"
	},
	"Numpad1": {
		"value": "",
		"withShift": "1",
		"withAltGr": "",
		"withShiftAltGr": "1"
	},
	"Numpad2": {
		"value": "",
		"withShift": "2",
		"withAltGr": "",
		"withShiftAltGr": "2"
	},
	"Numpad3": {
		"value": "",
		"withShift": "3",
		"withAltGr": "",
		"withShiftAltGr": "3"
	},
	"Numpad4": {
		"value": "",
		"withShift": "4",
		"withAltGr": "",
		"withShiftAltGr": "4"
	},
	"Numpad5": {
		"value": "",
		"withShift": "5",
		"withAltGr": "",
		"withShiftAltGr": "5"
	},
	"Numpad6": {
		"value": "",
		"withShift": "6",
		"withAltGr": "",
		"withShiftAltGr": "6"
	},
	"Numpad7": {
		"value": "",
		"withShift": "7",
		"withAltGr": "",
		"withShiftAltGr": "7"
	},
	"Numpad8": {
		"value": "",
		"withShift": "8",
		"withAltGr": "",
		"withShiftAltGr": "8"
	},
	"Numpad9": {
		"value": "",
		"withShift": "9",
		"withAltGr": "",
		"withShiftAltGr": "9"
	},
	"Numpad0": {
		"value": "",
		"withShift": "0",
		"withAltGr": "",
		"withShiftAltGr": "0"
	},
	"NumpadDecimal": {
		"value": "",
		"withShift": ".",
		"withAltGr": "",
		"withShiftAltGr": "."
	},
	"IntlBackslash": {
		"value": "<",
		"withShift": ">",
		"withAltGr": "|",
		"withShiftAltGr": "¦"
	},
	"ContextMenu": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Power": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"NumpadEqual": {
		"value": "=",
		"withShift": "=",
		"withAltGr": "=",
		"withShiftAltGr": "="
	},
	"F13": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F14": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F15": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F16": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F17": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F18": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F19": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F20": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F21": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F22": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F23": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"F24": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Open": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Help": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Select": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Again": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Undo": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Cut": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Copy": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Paste": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Find": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"AudioVolumeMute": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"AudioVolumeUp": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"AudioVolumeDown": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"NumpadComma": {
		"value": ".",
		"withShift": ".",
		"withAltGr": ".",
		"withShiftAltGr": "."
	},
	"IntlRo": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"KanaMode": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"IntlYen": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Convert": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"NonConvert": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Lang1": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Lang2": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Lang3": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Lang4": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Lang5": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"NumpadParenLeft": {
		"value": "(",
		"withShift": "(",
		"withAltGr": "(",
		"withShiftAltGr": "("
	},
	"NumpadParenRight": {
		"value": ")",
		"withShift": ")",
		"withAltGr": ")",
		"withShiftAltGr": ")"
	},
	"ControlLeft": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ShiftLeft": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"AltLeft": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MetaLeft": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ControlRight": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"ShiftRight": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"AltRight": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MetaRight": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrightnessUp": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrightnessDown": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaPlay": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaRecord": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaFastForward": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaRewind": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaTrackNext": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaTrackPrevious": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaStop": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"Eject": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaPlayPause": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MediaSelect": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"LaunchMail": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"LaunchApp2": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"LaunchApp1": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"SelectTask": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"LaunchScreenSaver": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserSearch": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserHome": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserBack": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserForward": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserStop": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserRefresh": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"BrowserFavorites": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MailReply": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MailForward": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	},
	"MailSend": {
		"value": "",
		"withShift": "",
		"withAltGr": "",
		"withShiftAltGr": ""
	}
}

@Tyriar
Copy link
Member

Tyriar commented Mar 29, 2017

I think everything is fine on Ubuntu

image

@rebornix
Copy link
Member Author

@Tyriar mentioned that this is maybe because I don't have libxkbfile-devel.x86_64. Tried sudo yum install libxkbfile-devel.x86_64 but still no luck.

@alexdima
Copy link
Member

Thanks for digging into this.

@rebornix Looks like X11 is stuck in us

Layout info:
{
	"model": "pc105",
	"layout": "us,cn,de,us",
	"variant": ",,,",
	"options": "",
	"rules": "evdev"
}

I am no expert on CentOS, but from above it appears X11 is aware of multiple kb layouts, but us is the selected one.

Can you please try: setxkbmap de,us,cn and in the same terminal launch vscode.

@rebornix
Copy link
Member Author

rebornix commented Mar 29, 2017

After running setxkbmap de,us,cn in terminal, I run into below issues

  • Keybinding looks good, Command Palette is telling me Toggle Comment is now ctrl+shift+7. But pressing ctrl+shift+7 works.
  • However, pressing shift+7 in editor and terminal generate & instead of /.
  • When I press the keycap y, the system Keyboard Layout Viewer thinks I'm pressing on z (as it's German layout) but the editor still gets y.

@alexdima alexdima added the bug Issue identified by VS Code Team member as probable bug label Mar 29, 2017
@alexdima
Copy link
Member

From this last piece of information, it appears that under CentOS, X11 is "disconnected" from the keyboard layout OS functionality. I'm not sure what we should use in this case to detect keyboard layouts

@alexdima alexdima added help wanted Issues identified as good community contribution opportunities and removed info-needed Issue requires more information from poster labels Mar 30, 2017
@alexdima alexdima changed the title German Keyboard on CentOS sees Shift+7 as & instead of / Arch Linux: Reading keyboard layout reads the wrong oneGerman Keyboard on CentOS sees Shift+7 as & instead of / Apr 10, 2017
@alexdima alexdima changed the title Arch Linux: Reading keyboard layout reads the wrong oneGerman Keyboard on CentOS sees Shift+7 as & instead of / CentOS: Reading keyboard layout reads the wrong one Apr 10, 2017
@alexdima
Copy link
Member

Related: #24166

@alexdima alexdima added the keybindings VS Code keybinding issues label Apr 10, 2017
@alexdima alexdima changed the title CentOS: Reading keyboard layout reads the wrong one KDE: Reading keyboard layout reads the wrong one Jan 22, 2018
@alexdima
Copy link
Member

Let's track in #24166 which contains valuable workarounds and clarifies the problem.

@alexdima alexdima added *duplicate Issue identified as a duplicate of another issue(s) and removed bug Issue identified by VS Code Team member as probable bug help wanted Issues identified as good community contribution opportunities keybindings VS Code keybinding issues labels Jan 22, 2018
@vscodebot vscodebot bot locked and limited conversation to collaborators Mar 8, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
*duplicate Issue identified as a duplicate of another issue(s) keyboard-layout Keyboard layout issues linux Issues with VS Code on Linux
Projects
None yet
Development

No branches or pull requests

3 participants