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

Add Turkish keyboard layout #2

Closed
davidebreso opened this issue Apr 16, 2022 · 27 comments
Closed

Add Turkish keyboard layout #2

davidebreso opened this issue Apr 16, 2022 · 27 comments
Labels
enhancement New feature or request

Comments

@davidebreso
Copy link
Owner

Hi, just got Fritz's mail and thought I'd answer here.

The standard codepage for Turkish in DOS is IBM CP 857. And like he said, there are two keyboard layouts in use in Turkey, one derived from QWERTY, used by the huge majority of typists (including yours truly :), and another one, called the F layout, optimized for typing efficiently and quickly.

The link you provided depicts correctly the Q layout and for the F layout, you may want to take a look at http://kbdlayout.info/kbdtuf. There's more information about it on https://en.wikipedia.org/wiki/Keyboard_layout#Turkish_(F-keyboard).

Originally posted by @cardpuncher in #1 (comment)

@davidebreso davidebreso added the enhancement New feature or request label Apr 16, 2022
@davidebreso
Copy link
Owner Author

davidebreso commented Apr 16, 2022

New issue created to track development of the Turkish layout.

Follow up of @fritzmueller in #1 (comment)

@cardpuncher
Copy link

IMHO pinging @bitigchi on this could be useful as he's a FreeDOS contributor and uses the F layout whereas I use the Q one.

@davidebreso
Copy link
Owner Author

Commit 501aa03 adds a first draft of the Turkish Q layout. It should be coherent with http://kbdlayout.info/kbdtuq

the executable is in mkeybtrq.zip for anyone to test it, and report back here.

mkeyb tr selects the layout

@fritzmueller
Copy link

fritzmueller commented Apr 18, 2022 via email

@davidebreso
Copy link
Owner Author

Thank you @fritzmueller. There are no screenshot in your reply. When mKEYB cannot be unloaded, the old copy is disabled and a new copy is loaded in memory with the new keyboard layout. In this case you get some error messages with debug information. You can detect if this is the case by typing mem /c and check if mKEYB is listed twice or once.

Pre-release 0.50a includes both turkish layout (Q layout and F layout), so you can test this new one if you want.

@cardpuncher
Copy link

cardpuncher commented Apr 19, 2022 via email

@fritzmueller
Copy link

mkeyb050-002
Unlinking Int... is what I meant.
I tested the two layouts and noticed some differences with http://kbdlayout.info/kbdtuq and http://kbdlayout.info/kbdtuf
at the combination ALTGR - character and a fourth keyboard level (????). Other keyboard layouts do not show these characters so that I am confused. You will hopefully get feedback asap from the turkish colleagues.

Willi

@bitigchi
Copy link

I am not at a PC right now, but the layouts in the above addresses seem accurate. I remember trying all the modifiers in various states and getting the listed characters. I am not sure if they are all needed in a DOS environment though.

The ALTGR behaviour seems also correct, it acts as CTRL + ALT.

@fritzmueller
Copy link

fritzmueller commented Apr 19, 2022

Ok, I send you two screenshots with F and Q Layout. I am not sure if the red marked characters are really needed.
At Q: ae, t and i with dot,
AT F: ae, t, special o, SHY and a lot of characters (4 characters on one key, I have no idea on how to enter this characters).
I was unable to create the red marked characters with a german keyboard layout and turkish F and Q settings. Please check
this and tell what to do. Thx.

F-keyboard
Q-keyboard

@bitigchi
Copy link

bitigchi commented Apr 19, 2022

Well, aside from <, >, and ₺, none of them are needed. Also maybe the section sign (§).

Sadly, it is not possible to type ₺ (Turkish Lira sign) anyway. It's a new sign, from 2011.

To clarify: These symbols should not require a fourth level modifier. They are available at most with AltGr.

@fritzmueller
Copy link

F-keyboard-with-keyb-yellow-works-then
Q-keyboard-with-keyb-yellow-works-then
Hi,
I just ran a test with FD keyb command (not mkeyb) and got the result that the yellow marked characters are supported there.
So at F layout only "a", "t - Lira" "o" , SHY (F0) and special pipe are missing
At Q only the "t-Lira" is missing.
I think if these yellow marked things could be fixed, you can live with it.
Please tell me if "medecines sans frontieres" (Ärzte ohne Grenzen) (doctors without borders) are ok for you. I will try to pay 300 Euros as soon as the yellow marked characters work. I assume it will last a while till the receipt is sent to me, I will try to send
a copy asap.
THX

@bitigchi
Copy link

I am not sure if I understood the Doctors without Borders thingy (I guess it's okay), but the technical part is okay.

I was thinking, maybe I'll have a shot at contributing the glyph for the Turkish Lira sign. @shidel, would it make sense to add the code point for now (U+20BA)? I will try to draw the glyph for it when I have time. It wouldn't be double work then, currently it's invoked with AltGr + T.

@davidebreso
Copy link
Owner Author

I tested the Q layout and it looks flawless, thank you! Hopefully @bitigchi can help with the F layout. Also, just wanted to let you know that if you add NLS support to mkeyb, I can happily provide French & Turkish translations.
Thanks for checking the layout!

I haven't tought on adding NLS support so far. As soon as the turkish layout is finalized, I will get back to Tom Ehlert so that he can incorporate my changes into the main version of mKEYB, and ask him about NLS as well. If it is doable, I can contribute with italian.

@davidebreso
Copy link
Owner Author

Hi, I just ran a test with FD keyb command (not mkeyb) and got the result that the yellow marked characters are supported there. So at F layout only "a", "t - Lira" "o" , SHY (F0) and special pipe are missing At Q only the "t-Lira" is missing. I think if these yellow marked things could be fixed, you can live with it.

The fourth symbol is activated with AltGr + Shift, a combination that is only partially supported by mKEYB. Adding full support is doable, I only need a few hours of spare time to complete the layouts.

The turkish lira symbol ₺ is not available in the DOS codepage 857, so it won't be included in the layout

Please tell me if "medecines sans frontieres" (Ärzte ohne Grenzen) (doctors without borders) are ok for you. I will try to pay 300 Euros as soon as the yellow marked characters work. I assume it will last a while till the receipt is sent to me, I will try to send a copy asap. THX

"medecines sans frontieres" is ok, you can choose any charity you like

@davidebreso
Copy link
Owner Author

davidebreso commented Apr 19, 2022

Unlinking Int... is what I meant.

I see. In your setup the copy of mKEYB run by fdauto.bat cannot be removed from memory because there are other drivers loaded loaded after it. So the only way to change the layout without rebooting the system is to disable the old mKEYB and load a new copy in memory. You end up with ~700 bytes of useless memory, but everything works.
When you run mkeyb again to change the layout the driver is telling you the location in memory of the driver that interfere, so you can use mem /d to find them and fix the issue, if you want.

I understand that the message is obscure if you are not an expert on how dos drivers works, so I will remove (everything is safe anyway), or show them only if a "verbose" switch is selected

@davidebreso
Copy link
Owner Author

I was thinking, maybe I'll have a shot at contributing the glyph for the Turkish Lira sign. @shidel, would it make sense to add the code point for now (U+20BA)? I will try to draw the glyph for it when I have time. It wouldn't be double work then, currently it's invoked with AltGr + T.

The turkish lira sybmol is not present in codepage 857, or in any other dos codepage that I know about. Even with the glyph, how can you visualize it ?

@bitigchi
Copy link

bitigchi commented Apr 19, 2022

It might be possible to replace a current character I guess. But that needs to be discussed.

Edit: It would cause inconsistencies with other systems. I guess it's better not to do it.

@fritzmueller
Copy link

fritzmueller commented Apr 20, 2022

Hi,
to come to an end:
@bitigchi, this was my earlier promise and I will do it as soon as the updated mkeyb works:
Hi, I forgot to share the following information with you:
I promised Tom Ehlert earlier this year that I will donate 300 Euros to a charity if the Turkish keyboard support is built into mkeyb. A donation from Ärzte ohne Grenzen (Medecines sans frontiers, Doctors Without Borders) was planned. The offer still stands. Of course we can talk about another charity company.

I think if davidebreso can add the yellow marked symbols a big milestone would be done. They work with keyb with
ALTGR-Shift but not yet with mkeyb. Lower case "ae" and "o" does not work too, see red marker at F-layout.

NLS support would be nice but is not so important at the moment as mkeyb only requires a simple command
"mkeyb tr" and "mkeyb trf". And in about 50 percent of FreeDOS (including command.com - it needs a compilation in
different languages) does not directly support NLS.
I just looked through all turkish codepages ( https://de.abcdef.wiki/wiki/EBCDIC_code_pages ) and found no "t" lira symbol, even not in cp 1254 and Mac codepages.
So if it really works it must be a brandnew change - and nobody worried about it in old codepages. CP857 supports
Euro instead (strange!). I think this symbol is not so important, Jerome Shidel used cp850 for most european keyboard layouts although cp858 adds the Euro. I never wrote a text in FreeDOS that required the € character, and if necessary, I would write
EUR instead. I am sure you can write something like "TL" instead.
I assume it makes no sense to create this symbol for mkeyb as - if cp857 does not support it - it will not be shown, correct?
And a lot of people will have to be asked till a cp is modified (maybe it gets a new number then for compatibility reasons).
And when this new cp really would be done, someone of the FreeDOS programmers is needed to implement it at cpidos / kpdos. And there are only less...

There is a bigger problem that I see: the keyboards have such a different layout that it is almost impossible to enter
"mkeyb tr" or "mkeyb trf" with Q layout as long as the driver is not loaded (US keyboard at that moment). You should discuss about a way to enter this text if you do not use a preinstalled FreeDOS.

Willi

@davidebreso
Copy link
Owner Author

Release 0.50b include the complete turkish layouts with the AltGr+Shift combinations. Also, it simplifies the warning messages when uninstalling the drivers, in a way that I hope is less obscure than "unlinking int ...".

Once the layouts are verified I will merge it back with the main branch

@fritzmueller
Copy link

Hi,
I just tested 0.50b in MS-DOS 6.22 and FreeDOS. Works great, except Euro and TL (because outdated CP)!
There is only one thing where I am not sure: the high "a" at "aA" and "o" at "sS" at F-Layout. The keyboard layout (see above) shows NO underscore at this character. At codepage 857 description I found an "a" (D1) and an "o" (D0) with underscore and only an "o" without underscore (F8). As I do not know which is correct, our turkish boys should decide this by testing it with Windows / Linux.

There is one more little problem: If you have a key with four layers, e.g. u,U,ae,AE (right near CapsLock) you get ae by pressing ALTGR-u and AE by pressing ALTGR-SHIFT-u. This is okay.
But if you have only three characters on the key, e.g. f,F,@ pressing ALTGR-f shows @ character and ALTGR-SHIFT shows @ too.
No big problem but a little confusing.
Thanks!

@fritzmueller
Copy link

Hi, I forgot to send the updated mkeyb htm file for FreeDOS help. If you and Tom think that everything is okay, please add it to the file. At the moment I work on FD help 1.1.0. The help is written to support htmlhelp, ambhelp and of course internet, for this reason it is written very simple
mkeyb.zip
.

@davidebreso
Copy link
Owner Author

I did some testing in PC DOS 2000. IBM's keyb driver do not have the ª or º symbol. FD-keyb shows them with the underscore, but only with codepage 850, with codepage 857 they are not active. So I suppose the glyphs with the underscore are the correct one.

Commit 287262a implements the ª symbol at aA in the turkish F layout, and fixes the problem with the ALTGR-Shift when there are only three symbols in the key.

@fritzmueller: thanks for the help file. I have added it to the repo. I don't know how to include it in the freedos help, but Tom may knew what to do with it.

mkeyb.exe is the new executable for testing.

@fritzmueller
Copy link

Hi,
from my site both turkish keyboards work fine. You did a great job!
If Tom could add NLS support, it would be nice, but I think for the moment we can live with this actual solution.
As mentioned above, the mkeyb help is already added in the upcoming version 1.1.0 as I just work on it. But it will last a while
till it is done.

I will send a copy of the receipt as soon as I have one. This may last a while but I don't forget it.

In case that you have a little time for FreeDOS - I know several bugs that were not fixed over years, but I am no programmer.
One that should be easy to solve is the following, not reported by me, but I also had problems with it.

Error in: XDEL

The xdel *.bak command shows the following:
path: C:
file: *.BAK
and then nothing more! No prompt, only a blinking cursor.
After pressing any key it shows:
Is this was you wish to do? [yn]
In other words, the question about deleting only appears after the deletion if you accidentally entered "y". (Luckily) nothing else happens.

XDEL v2.06

Referring to
xdel09

@davidebreso
Copy link
Owner Author

davidebreso commented Apr 22, 2022

Hi, from my site both turkish keyboards work fine. You did a great job!

Thanks for checking the layout and spotting the inconsitencies. I will release the layouts as version 0.50 of mKEYB soon.
@fritzmueller @cardpuncher @bitigchi : I would like to acknowledge your contribution by adding "verified by ..." with your name/nickname to the turkish layouts. Let me know if it is ok four you.

If Tom could add NLS support, it would be nice, but I think for the moment we can live with this actual solution. As mentioned above, the mkeyb help is already added in the upcoming version 1.1.0 as I just work on it. But it will last a while till it is done.

Once version 0.50 is ready, I will contact Tom and ask for the NLS and help.

I will send a copy of the receipt as soon as I have one. This may last a while but I don't forget it.

I truts you will. You can send the copy to bresolin.davide@gmail.com if you prefer to not show it in public.

In case that you have a little time for FreeDOS - I know several bugs that were not fixed over years, but I am no programmer.

I am not really into FreeDOS: I may take a look at the bugs but I cannot make any promise. You may have better luck by contacting the author of xdel (if he is still working on it). All this started because I needed a small keyboard driver, and mKEYB didn't run on my XT clone.

@bitigchi
Copy link

Currently I am travelling and away from my machines, so I'm okay if at least someone tested the layouts and keys do produce results according to the schematics above. Sorry for not being able to test right now.

@fritzmueller
Copy link

fritzmueller commented Apr 23, 2022

Hi,
it is not really necessary to mention my name at mkeyb, but if you really want to do so simply write W. Spiegl as you will find it at most of the english and german articles at FreeDOS help 1.0.8a with htmlhelp or amb.
I paid the money yesterday, you should have got a first confirmation some minutes ago.

Most of the FreeDOS commands are no longer supported by a maintainer. So I think it should be no big problem to pick one and fix bugs. Xdel is an obvious bug, even Jim Hall reported about it, but of course there are more. One of them is htmlhelp which was the original browser for the FreeDOS help. I do not want to report about all problems with this tool here, but as I only overtook writing the text for help in 2007 (at the moment I work on english version 1.1.0) I am sure that it is no longer maintained, there was a trial to do so, but it was stopped last year. Fixing this tool will be more complex. If you want to know more about this or other bugs simply send me a mail.

@bitgchi and cardpuncher: Please please nevertheless test mkeyb 0.50 again as there were several changes as reported here when you have time to do so. Thank you very very much!!

Fritz / Willi

@cardpuncher
Copy link

On 23.04.2022 16:19, fritzmueller wrote:

I paid the money yesterday, you should have got a first confirmation some minutes ago.

I would like to have contributed, but as it amounts to a monthly wage here, it's kind of expensive. So thank you Willi, really.

@bitgchi and cardpuncher: Please please nevertheless test mkeyb 0.50 when you have time to do so.

I tested the Q layout that I use on a daily basis, and it looks OK, I couldn't find anything wrong with it. Even the Æ sign works correctly both uppercase and lowercase.

[davidebreso]Thanks for checking the layout and spotting the inconsitencies. I will release the layouts as version 0.50 of mKEYB soon.
@fritzmueller @cardpuncher @bitigchi : I would like to acknowledge your contribution by adding "verified by ..." with your name/nickname to the turkish layouts. Let me know if it is ok four you.

Sorry for the late reply. No problem for me, either way. And thank you for updating mkeyb.

Once version 0.50 is ready, I will contact Tom and ask for the NLS and help.

Now that it's ready, this is merely a reminder that I'd still be happy to translate mkeyb :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants