switching to any other than English keyboard layout is not handled correctly anymore on the prompt at minimum

L A Walsh cygwin@tlinx.org
Mon Jan 25 22:58:34 GMT 2021



On 2021/01/25 12:50, Ariel Burbaickij wrote:
> Wait a sec, what do you specifically mean with "... Cygwin just uses the 
> POSIX standard..." -- POSIX standard for what and how does it interfere 
> with getting the current layout and mapping from OS?
---
	Cygwin doesn't get things directly from the OS.  It relies
on things like the locale being set correctly in order for it to
function.  Windows does not use the POSIX or unix/linux type API,
so changing settings in Windows isn't something that will necessarily
configure cygwin to work.

If you are using the cygwin terminal, I don't know -- I don't use 
the same features.  But, for example, bash, the shell likely running
in the cygwin terminal, has its own understanding of how it should
process characters.  It, in turn, relies on the "readline" facility.
It may be configured by default, but a few settings, I had to set
*ages ago* (been using cygwin for >20 years) in the ".inputrc" file
in my home directory:

set convert-meta off
set input-meta on
set output-meta on

Those all may be default settings now, but at one point in time
I think I had to set them.



> What do you also mean with "... So you need to set your terminal to 
> interpret unicode..." ? My terminal is Cygwin Terminal here. cmd.exe 
> does at least handle Russian and German just fine, not so Arabic and 
> Hebrew but this, I am pretty sure, because of some additional fiddling 
> around right-to-left writing needed. Notepad++(!) already handles all 
> input types just fine as do all the other programs tested so far. So, 
> what are these supposed big OS-side secrets specifically that cygwin 
> cannot get to here?
---
	It isn't a matter of "can't", it is a matter of doing so would
cause cygwin not to behave like programs on linux or on unix.  Cygwin
relies on settings in configuration files -- not OS-side hidden secrets.

	At one point in time, most to all of windows internals were 
undocumented. On unix/linux/posix they worked together to document how
all the programs would work together, but windows wanted no part of that.
Just like the path-separator on windows is usually '\'.  Bill Gates chose
that specifically because it was the "opposite" of "/" that was used
on unix and CP/M (a micro computer OS at the time).  He wanted to 
differentiate his offering by making sure DOS and Windows did things
differently from how standards were shaping up (early 80's) in other
OS's.  You and others are stuck with the legacy of those choices.  Just
like if you set the keyboard in a MS app running on an apple OS, it wouldn't
necessarily change anything in the apple OS.  They went yet another, 
different way.  

	At least MS didn't sue everyone who came close to their standards
or software like Apple did (and still does).  This prevented any sort of
compatible software from outside of Apple's approval.  MS could have
gone that way -- but because it was the largest, it got some controls 
slapped in place to allow compatibility.  Cygwin arose out of linux + 
posix compatibility -- not out of Windows, as such, you need to figure out
how to configure cygwin separately and apart from Windows.  Cygwin tries
to document things and follow open standards.  In the extreme, cygwin
has open source, so you can see how it works, and change it yourself to
suit your needs (or hire a software engineer to do so).  Windows and apple
don't supply source nor extreme detail in how their OS works.  

	I was trying to be helpful and tell you that cygwin interfaces may
need extra configuration if you want to personalize things or go with
non defaults.  On windows, if you want to do anything outside of what the
OS clearly presents to you, it will be a much more difficult path to change
anything.  I don't know the answers to the questions you are asking, I don't
work on cygwin, I just use it on windows as a slightly more comfortable 
text-based interface than what windows has provided over the years.  I have
some background in linux which makes cygwin's interface more familiar to me.

	I've never gotten into Windows development, since it was always too
costly and too dead-end.  Several technologies from MS have come and gone
over the past 40+ years.  I could have invested in learning any of them, and
now, many or most would be gone.  Given that, learning a special API that 
would only be usable for windows, that likely would be obsolete in 5 years, 
and paying for the privilege of being allowed to use such an API and tools
seems like a waste of time.  As such, things I learned about unix and shell
30 years ago, are still usable + useful today.

	I don't know how to create a keyboard layout on linux, I use what
is there.  I certainly don't know how to modify a cygwin/posix keyboard
layout to be compatible with windows.  Sorry.  Maybe someone else knows
more.  If you want cygwin to automatically read your changes in windows,
I'm told that the cygwin project would be happy to accept patches and
source updates to enhance its functionality.

Cheers!
Linda


More information about the Cygwin mailing list