"componi" sulla console consente di digitare due caratteri ma ne genera un terzo.
il problema è che le definizioni di composizione usano byte , sia come due input (cioè non è possibile definire la composizione in termini di chiavi digitate ma solo in termini di simboli digitati) sia per l'output.
per farlo funzionare in UTF-8, che è multibyte (almeno da 1 a 4 byte) richiederebbe grandi cambiamenti nel modo in cui viene gestito l'input della console, e sostituisce il semplice array di caratteri attualmente utilizzato da qualcosa di più complesso. Sembra che non ci siano piani per farlo (il consenso tra i devlopers del kernel è che la console dovrebbe rimanere una console, qualcosa di semplice, utilizzata solo per l'ultimo ressort; se in realtà hai bisogno di unicode allora probabilmente hai anche bisogno di bidi, shaping, ecc; allora è meglio eseguire un terminale grafico (un xterm a schermo intero su X11; ma ci sono altre possibilità).
Quindi, in effetti non funziona e non funzionerà, con i personaggi multibyte sulla console. MA funziona ancora se si limitano le definizioni di composizione al semplice ASCII.
E ho anche scoperto che funziona anche se l'uscita è in iso-8859-1 (che corrisponde a valori unicode fino a 0x00ff); per questo puoi inserire in alcuni script di avvio una riga:
loadkeys / somepath / somefile
e inserisci in quel file le definizioni di composizione che desideri (fai attenzione a salvare il file nella codifica ISO-8859-1; e usa i caratteri più grandi di 0x7f come solo output) la sintassi di un tale file è molto semplice, linee come questa:
comporre "somechar" "somotherchar" in "output desiderato"
per esempio:
componi "a" "a" in "å"
componi "a" "e" in "æ"
l'apostrofo deve essere evaso.
l'effetto di chiavi diacritiche morte è anche definito in quel file; per dead_acute + a definisci una linea come:
componi '\' '' a 'in' á '
dead_grave usa backtick (`), dead_diaeresis usa doublequote ("), dead_circumflex usa circumflex (^) e dead_tilde usa tilde (~).