Updating MSKLC (part 7) for the sake of summing it all up
by Michael S. Kaplan, published on 2015/06/18 18:08 +00:00, original URI: http://www.siao2.com/2015/06/18/8770668856267196506.aspx
Link to previous post here.
You can see the entire series of blog posts by searching for the updating MSKLC for the sake of keywords.
I know that I've gone on for a bit with this series. But the nature of blogging causes that whether we like it or not.
So I thought that I'd sum it all up now with my vision of the new MSKLC (Microsoft Keyboard Layout Creator):
• no more IA64, just like Microsoft.
• support for ARM, just like Microsoft.
• support for Windows Phone, just like Microsoft.
• support for intelligent Tap and Hold, just like Microsoft.
• support for chained dead keys via a mechanism just like that Tap and Hold feature.
• new user interface, probably WPF (Windows Presentation Foundation) just like Microsoft though in a perfect world plain old Win32 so using the next new thing can be avoided.
• fixing a few lingering bugs, just like Microsoft would do if it was shipping updates.
• either do it ASAP ourselves @ Microsoft or do the new user interface via open source or shared source, just like Microsoft (now, at least!).
• be the best user interface for all platforms, just like MSKLC has always been in spite of itself and Microsoft and everyone else.
• stay outta the brewing race war and weird platform incompatibilities of emoji/emoticons beyond what the Windows Phone implementation is already doing, just like Microsoft is already doing.
This is a project that helps everyone get things done. And I really think that we should do it, one way or another.
# Andrew Cunningham on 2015-06-19 23:02:36:
Definetely really need to do it!
# Oliver on 2015-07-12 05:18:44:
So I looked into the innards of MSKLC a little more now. I had before, but this time I had to do it to figure out how I could create my own MSIs and also whether there was a possibility of it producing C source instead of plain DLLs. I had seen the tool chain files before, so I reckoned it must be possible.
Turned out with kbdutool.exe it is possible.
The actual GUI isn't all too complicated, though it'd take a while to reproduce. Cool thing would be to have a format that can then be converted to the appropriate configuration files on the Linux side as well (although I get that probably not everybody is as excited about that part as I am).
Anyway, so is there an officially available documentation of a kind other than what ReactOS has put together on their end? Because while it seems almost trivial (albeit still work-intensive) to re-create what MSKLC 1.4 is, the rules of the game are unknown. So to extend such a clone, say an open source clone, would require to reverse engineer parts of the native (NT) user APIs, right?
I was also surprised to find that most of the binaries included in MSKLC were not signed and that the included tool chain appears to be put together from internal sources rather than from what was publicly available at the time (e.g. VS 2005, DDKs ...).
Anyway, thanks for your blog series. After working with MSKLC again yesterday (after a few years break), I am contemplating to create an improved clone of sorts.
To your list of improvements/features I'd like to add:
* better way of editing dead keys
* building a layout under a given name won't prevent me from building something again under that same name
* built-in method to output PNG files with the "layout description" for each key state (i.e. Shift, Ctrl, Alt etc)
* support for comments inside the .klc files from the GUI
* allow for updating the Unicode name list
# Rimas on 2015-07-14 12:47:49:
One of the ways I see how this could be solved is if someone with enough knowledge would just share that knowledge in the form of a couple .bat files and an example layout, or something. What I mean is, even without updated MSKLC we could at least build our layouts for ARM from the sources generated by nonupdated MSKLC, if we only knew how. Well, at least in theory.
Actually, I've built my Lithuanian layout (prepared with MSKLC) following the instructions on Igor Levicki's blog using the latest Visual Studio preview version on Windows 10 yesterday. I did adapt command arguments slightly, but it seems to work (or at least I'm under an impression that I can use my layout compiled this way in that same Windows 10 box – in both 64-bit and 32-bit applications). I even built an ARM version which I have no means to test. What is missing though is the MSI generation magic (I guess MSKLC.exe handles that?), maybe some integration with the visual editor and, of course, being sure that I'm on the right path.
By the way, I have a short list of things that aren't working in Windows with MSKLC-generated layouts the way they work in stock layouts. I'm sure you must have heard of these issues, but it would probably be good to have them officially tracked somewhere.
go to newer or older post, or back to index or month or day