On Fri, May 19, 2006 at 08:46:08PM +0400, Alexej Kryukov wrote: > On Friday 19 May 2006 14:06, Michael Shigorin wrote: > > > > WORKSFORME > > Да не должно оно работать. И я вообще не представляю, > как такое реализовать под X: когда-то разбирался с Xlib, > и не нашел ни одной функции, которая позволяла бы узнать > _название_ (а не номер) текущей xkb-группы. Т. о. приложение > не имеет и не может иметь никакого понятия о текущем языке > ввода. Вообще-то xkbcomp читает с сервера полное описание клавиатуры: bzero((char *)&result,sizeof(result)); result.type= XkmKeymapFile; result.xkb= XkbGetMap(inDpy,XkbAllMapComponentsMask,XkbUseCoreKbd); if (result.xkb==NULL) WSGO("Cannot load keyboard description\n"); if (XkbGetIndicatorMap(inDpy,~0,result.xkb)!=Success) WSGO("Could not load indicator map\n"); if (XkbGetControls(inDpy,XkbAllControlsMask,result.xkb)!=Success) WSGO("Could not load keyboard controls\n"); if (XkbGetCompatMap(inDpy,XkbAllCompatMask,result.xkb)!=Success) WSGO("Could not load compatibility map\n"); if (XkbGetNames(inDpy,XkbAllNamesMask,result.xkb)!=Success) WSGO("Could not load names\n"); if ((status=XkbGetGeometry(inDpy,result.xkb))!=Success) { if (warningLevel>3) { char buf[100]; buf[0]= '\0'; XGetErrorText(inDpy,status,buf,100); WARN1("Could not load keyboard geometry for %s\n",inDpyName); ACTION1("%s\n",buf); ACTION("Resulting keymap file will not describe geometry\n"); } }