Как сопоставить X11 Keyyysy на символ Unicode?
-
12-11-2019 - |
Вопрос
Это точный дубликат этовопрос ;Однако код, связанный в принятом ответе, почти 11 лет, и этот комментарий в коде приводит к моему дублирующему вопросу:
Кейюм -> Конверсия UTF-8, надеюсь, один день будет предоставлен Xlib через xmblookupstring () и в идеале не должен быть сделан в X Приложения.Но мы еще не там.
Мы там еще?Я знаю о
XwcLookupString
, но что-то вроде ....wchar_t unicode = XKeySymToWideChar( keysym );
... будет намного проще и логично, и не требует обновления, когда keysyms добавляются или изменены.
Есть простая функция в X11 / XLIB, которая будет сопоставлять Keysym к своему эквиваленту Unicode?
Решение 2
Есть простая функция в X11 / XLIB, которая будет сопоставлять к кейю к его Unicode Equivalent?
Потому что Unicode был изобретен годы после Xlib, и никто никогда не пошел Вернуться, чтобы добавить такую вещь?Большая часть XLIB API является CodeSet независимый, так как он был написан в те дни, когда каждый локаль использовал другой набор символов (ISO 8859- *, Big5, Jis и т. Д.), Так вы получаете Char Buffer подходит для текущей локали.Было несколько UTF-8 конкретные дополнения в последующие годы, но в основном мы пытались позволить С тех пор xLib покоится с тем, что толкает новый дизайн API в сторону XCB вместо этого.
Другие советы
Попробуйте этот модуль Node.js для генерации C Таблица C: https://github.com/substack/node-Keyysym . Он основан на этом наборе данных: https://github.com/Узвук / узел-keyysym / Blob / Master / Data / keysyms.txt
Это может помочь кому-то ... адаптировано из источника XMODMAP и Online DOC ( http://tronche.com/gui/x/xlib/Utilities/keyboard/xkeycodeTokeysy.html )
KeySym ks = XKeycodeToKeysym(dpy, keycode+min_keycode, modifier);
const char *s;
if (ks != NoSymbol)
s = XKeysymToString (ks);
else {
printf("Keycode has no symbol. Ignored.\n");
return NULL;
}
printf ("0x%04x (%s)\n", (unsigned int)ks, s);
printf ("wide char:%lc\n", (wchar_t)ks);
.
keyyym уже значение UTF.Проблема заключается в том, чтобы установить ключевые аккомации ... 'á' Например.