Google / X.Org Summer of Code 2009: Ideas Wanted

Dan Nicholson dbn.lists at gmail.com
Fri Mar 13 12:19:08 PDT 2009


On Fri, Mar 13, 2009 at 12:01 PM, Kristian Høgsberg <krh at bitplanet.net> wrote:
> On Fri, Mar 13, 2009 at 2:55 PM, Dan Nicholson <dbn.lists at gmail.com> wrote:
>> On Thu, Mar 12, 2009 at 11:51 PM, Donnie Berkholz <dberkholz at gentoo.org> wrote:
>>>
>>> - merging xkbcomp into the server
>>
>> I'm been working on this in my spare time as per Daniel's advice to
>> create a libxkbcommon shared library. If anyone wants any more details
>> on what I've been doing there, let me know. Right now I'm getting
>> familiar with the xkbcomp parser/compiler and figuring out how to
>> expose it as library. And, of course, finding out how much XKB API
>> would need to be duplicated to not drag in Xlib datatypes. It's not
>> that far along, but I have a pretty good idea what I want to do with
>> it.
>
> Cool, I'm interested.  I've been thinking of doing this for wayland
> and X, and one thing I wanted to avoid was linking to libX11.  That's
> only to call XStringToKeysym, right?  We should just copy the files
> over and include the hash table in libxkbcomp, I think.  If you have a
> git repo, can you put it up somewhere?

That's one thing, and I did that part. Have a look at any of the
headers in X11/extensions/XKB*.h and compare them to
xserver/include/xkb*.h and xserver/xkb/*.c. There is a ton of
duplication of XKB API so that it can be used in the server. Just one
fun fact: XkbDescPtr is different in the server since the one in
XKBstr.h has a Display field. kbproto is sweet.

Furthermore, all the parsing of the xkeyboard-config data is done in a
bison parser in xkbcomp. Unfortunately, xkbcomp uses the XKB API from
Xlib, so it has to be sanitized to some lower level to be usable the
server. Likewise, all the rules parsing is done in libxkbfile, which
is definitely client side only.

Anyway, I'll get my git repo of libxkbcommon onto annarchy soon. I
warn you that I'm not that far along, though.

--
Dan



More information about the xorg mailing list