Klingon Win8 Lock Screen: Might Sell Qurgh on Win8 After All :)

A while ago I blogged about Klingon in pIqaD in a Custom Locale - that worked OK in Vista & Win7 using Uniscribe font fallback, but Win8 uses DWrite in a lot of places, and DWrite really would prefer EUDC (End User Defined Character) fallback.  So my pIqaD didnʻt work so hot on Win8 :(  Fortunately I found a reg key to fix that :)  (This is abusing some of the OS behavior, which was designed for Chinese and Japanese, not Klingon).

EUDC characters are intended for use in primarily the CJK region, where you may need to use the "End user defined character" section of a code page (yes, code pages are evil, use Unicode).  The EUDC sections are mapped to the Unicode PUA (Private Use Area), which is where Klingon lives since itʻs not in Unicode.  Conscript gave some "consistent" (its not really a standard) places to put things like Klingon so I use those. 

Anyway, normally the "code page" corresponding to the system code page of interest is used to look up extended mappings in the EUDC key.  Typically thatʻs something like "932", but it works for 1252 as well.  (If youʻre using another code page, update the example appropriately.  So, we add a key telling Windows that for ʻend userʻ characters when the systemʻs running 1252, look in this font, eg:

[HKEY_CURRENT_USER\EUDC\1252]
"SystemDefaultEUDCFont"="pIqaD.ttf"

Not terribly difficult.  Log off/on to the user and voila, we have Klingon fallback.  Qurgh is gonna love this: I even make a pIqaD user account, and with the fallback I see it on the Start Screen:

Thatʻs wonderful, the lock screen also uses our user locale information (set Klingon pIqaD from my Vista custom locale), but the systemʻs actually doing the work.  I copied the key "everywhere" just to make sure:

[HKEY_USERS\S-1-5-20\EUDC\1252]
"SystemDefaultEUDCFont"="pIqaD.ttf"

[HKEY_USERS\S-1-5-19\EUDC\1252]
"SystemDefaultEUDCFont"="pIqaD.ttf"

[HKEY_USERS\S-1-5-18\EUDC\1252]
"SystemDefaultEUDCFont"="pIqaD.ttf"

Donʻt forget default, new users are going to want pIqaD, Iʻm sure of it :)

[HKEY_USERS\.Default\EUDC\1252]
"SystemDefaultEUDCFont"="pIqaD.ttf"

And with that change, our custom locale provides Klingon on the lock screen too!

(Iʻm not sure where the wallpaper came from, if it was you, thanks).

Qurgh and I differ a bit on our approach to Klingon long date formats, but I like all that pIqaD. 

Of course it isnʻt complete without the logon screen:  (It was great of the theme guys to give us wonderful colors perfect for Klingons)

 

 And wait, thereʻs more.  Other users (because of .default if you got there first) can see that thereʻre Klingons sharing the machine:

 And of course the Uniscribe stuff from my Vista post still works in other places.  This box has a Klingon admin:

Of course, Iʻm just taking advantage of stuff that was intended for other purposes.  More often EUDC is used for CJK character that represent names and other words not encoded in Unicode.  So a company could use this technique to make sure that important words were usable internally.  A family with unique names could make a font though and do this for their names.

Also, my Vista custom locale is a bit old, but I wanted tell Qurgh how to set up the EUDC stuff for his custom Klingon locales.  I need to update my own older pIqaD custom locale package and keyboards, but thatʻll take a while..

(PS: I forgot to mention that EUDC fallback also respects the locales digit substitutions, so youʻll get Klingon numbers in various places.  Uniscribe only does digit substitution for the number ranges it knows about (eg: those in Unicode, not the PUA), so those apps wonʻt see numbers in pIqaD).