I've added some space types to .XCompose
Just copy & paste to the end of existing compose. I don't think they overwrite any existing ones, but test first.
Code:
#Space types
<Multi_key> <n> <b> : " " U2002 # nut en size breaking space
<Multi_key> <m> <b> : " " U2003 # mutton em size breaking space
<Multi_key> <f> <n> : " " U2007 # figure size non-breaking space
<Multi_key> <p> <b> : " " U2008 # punctuation size breaking space
<Multi_key> <t> <b> : " " U2009 # thin typographical size breaking space
<Multi_key> <t> <n> : " " U202F # thin size non=breaking space
<Multi_key> <r> <n> : "*" U00A0 # regular size non-breaking space
Compose then:
nb narrow space en-size U+2002 Nut
mb wider space em-size U+2003 Mutton
fn U+2007 non-breaking figure space for monospace font
pb U+2008 punctuation space
tb U+2009 Thin Space.
tn U+202F Thin or Narrow non-breaking space. May resemble Thin Space size. Like for 12 kg
rn non-breaking space U+00A0 Same as regular space. (Ctrl Shift Space in Writer, but this also works in Writer.
see
https://en.wikipedia.org/wiki/Whitespace_character
Seems to work in Calibre editor, if .Xcompose & IBus is working.
I only tested all of them in LO Writer and Xed.
If .XCompose already exists, then log out and log in to activate. See earlier notes on .XCompose.
The Cyrillic set could be added the same way as Greek, note there is a standard layout for Cyrillic, but you might want to use simply the nearest Roman-Latin equivalents. Not all countries have exactly the same Cyrillic alphabet/glyphs.
Korean, Hindi, both kinds of Norse Runes and Ogham might work too.