How to convert Xbk keysym names to Characters on windows
08:35 08 May 2026

In Ubuntu´s xkb file we have keysyms defined like that:


   
    key   { [         q,          Q,           at,  Greek_OMEGA ] };
    key   { [         w,          W,      lstroke,      Lstroke ] };
    key   { [         e,          E,     EuroSign,     EuroSign ] };
    key   { [    ssharp, question, backslash,  0x1001E9E        ] };

I am on Windows 11 coding in Typescript. I copied Ubuntu`s xkb file to my win. system. Now I want to read this xkb file to create a keyboard definition file usable on windows.

I can do so for characters (e.g. "Q") but for names ( like 'EuroSign' ) I need to convert these strings. I found a list of keysym here. To prevent using this hardcoded lookup table I wonder if there are windows (or cross-platform) functions to map those keysym names to characters. This should work for surrogate pairs also.

For example: In my code I want to read "EuroSign" and convert it to"€"

const input  = "EuroSign"
const output = someConvertingFunction(input)  // output = '€'

Is there some function I can use?

typescript windows ubuntu keysym xkb