jeffpar / pcjs

The original IBM PC and other machine emulations in JavaScript
https://www.pcjs.org
Other
809 stars 122 forks source link

Using a german keyboard layout on Debian Linux / Firefox does not work well for some special keys #55

Open ecm-pushbx opened 1 year ago

ecm-pushbx commented 1 year ago

For example, I'm loading the default system (COMPAQ Personal Computer MS-DOS version 3.31) from https://www.pcjs.org/configs/pcx86/machine/compaq/deskpro386/vga/2048kb/machine.xml

I have a PS/2 keyboard connected to a Debian Linux 11-ish box, running Firefox "78.11.0esr (64-bit)" within a MATE Desktop Environment session. The keyboard has a german DIN T1 layout printed on its keycaps. (No Euro sign on the E key, but other than that standard.) In Debian I am using the "German German (no dead keys)" layout.

Some of the special keys do not work (on the DOS command line) as expected.

The first row (^ then 1 to 9 then 0 then ß and ´) unshifted works for ^ and the digits, but does not produce any output for ß and ´.

The first row with Shift produces nothing (° on the ^ key), !", nothing (§ on the 3 key), $%&?()+?~. This is wrong for Shift+7 which does ? but is supposed to be a forward slash / on the DIN T1, and Shift+0 which does + but is supposed to be a =, and Shift+´ is supposed to be a backtick not tilde ~.

The Ü key (next to O) and the Ö and Ä keys (next to L) do not produce any input, either without or with Shift, or with AltGr, except for AltGr+Ä which produces ^.

The + key (next to Ü) produces + without Shift, * with Shift, and tilde ~ with AltGr. All as it should be.

The # key (next to Ä) produces # without Shift, and double quote " with Shift (should be apostrophe/single quote ').

The punctuation keys ,.- next to M produce ,.- without Shift, ::_ with Shift (first key with Shift should give semicolon ; not colon).

The < key produces < without Shift, > with Shift, and | with AltGr. All as it should be.

AltGr+Q produces @, as it should.

Z and Y are correctly entered according to the layout. That is, the key between T and U produces Z, and the key next to X produces Y.

Entering the command keyb gr (from this COMPAQ DOS disk, or from the MS-DOS 6.22 first install disk) changes a lot of the special keys, but most are messed up too. Do you want me to map those out one by one too?

jeffpar commented 1 year ago

Thanks for the detailed write-up. I'll try to take closer look in about a week.