Основные проблемы при работе с иксами:
1. Получение символов в нужной кодировке из буфера обмена.
2. Получение скан-кода (KeySym хотя бы) из кода символа.
К сожалению, тайна преобразования keysym в ucs (utf8) и обратно пока осталась нераскрытой.
Существует некий код под названием keysym2ucs для этих целей.
Он используется в xterm, KDE, Mozilla, а также в библиотеке at-spi.
Стоит рассмотреть вопрос о наличии стандартной функции с такой возможностью.
Согласно описанию, XLookupKeysym работает только с Latin-1 (хотя на практике похоже возвращает в кодировке локали),
и нужно пользоваться XwcLookupString для получения символов в wchar и Xutf8LoookupString для получения в utf8.
Основные функции:
* XLookupString
* Xutf8LookupString
* XLookupKeySym
* XStringToKeysym
* XKeycodeToKeysym
* XLookupString
Данная ссылка должна ответить на все вопросы о возможностях использования Utf 8:
http://www.koders.com/cpp/fid41BEE22CE4ADB913863C05F9FBC375DDB2B0F577.aspx
Ссылок на эту страницу нет