Descubrí los dos comandos necesarios para hacer esto mediante programación:
XChangeKeyboardMapping
(para asignar un código clave no utilizado a char/unicode)
XTestFakeKeyEvent
(para enviarlo al servidor X)
Por lo tanto, se puede enviar cualquier carácter y el diseño del teclado puede permanecer igual.