[Xcb] "non-programming" work

Conroy, Bradley Quentin bconroy at uis.edu
Thu Sep 12 12:20:27 PDT 2013


> The closest I've written was a brief overview of a couple Xlib->xcb ports
> at https://blogs.oracle.com/alanc/entry/porting_xwininfo_to_xcb (which I later
> adapted for use in http://www.x.org/wiki/guide/xlib-and-xcb/ .)

I used the xwinifo port to help in writing a couple of small utilities for Puppy
Linux, and it was helpful for the basic stuff I was doing (waitforX, xcbmessage).
 
> More detailed examples would seem to be useful - it's always just been a matter
> of time to get it all done.

Off the top of my head, the only major port of substantial apps was the uwm
"re-imagining" of jwm (which IIRC does use xcb-image) and netsurf's nsfb.
There are quite a few window managers, but no terminal emulators aside from
an abandoned cairo-xcb attempt, though 'st' at suckless.org would be a good
candidate, maybe an older version since recent versions use XDBE and Xft.
I do have a list of links to various xcb projects.
Bindings:
https://github.com/CrypticSwarm/xcb-canvas (js bindings for node.js)
https://github.com/knarf-se/node-xcb
https://github.com/CrypticSwarm/XCBJS
https://github.com/Dimble/xcb-d
https://github.com/Dimble/xcbutil-d
https://github.com/gandalfn/xcb-vala
https://github.com/mwitmer/guile-xcb
https://github.com/ppibburr/ruby-xcb
https://github.com/xlq/lua-xcb
https://github.com/Neopallium/luaxcb
https://github.com/Aatch/rust-xcb
https://github.com/BurntSushi/xgb
https://github.com/rpav/cl-xcb-xlib
https://github.com/Zubnix/xcb4j
https://github.com/topcat/xcb-win32
https://github.com/BurntSushi/xpybutil
https://github.com/SietsevanderMolen/xcbada

https://github.com/rib/xgen (use c vs py to generate code - good for new architectures?)

https://github.com/jvvv/9wm-xcb
https://github.com/julian-goldsmith/dwm-xcb
https://github.com/venam/2bwm
https://github.com/elgitmariachi/Be_Lucky_Window_Manager
https://github.com/guymann/uwm
https://github.com/mil/simple-wm
https://github.com/c00kiemon5ter/wm
https://github.com/rtyler/tinywm-ada/blob/master/tinywm-xcb.c (small and public domain)
http://uwm.sourceforge.net/ (port of jwm, uses images extensively)
http://sourceforge.net/projects/vanillabox/ (blackbox fork)
http://sourceforge.net/projects/simplebox/
http://sourceforge.net/projects/linuxboxmanager (another dwm fork)
http://sourceforge.net/projects/xlitewm/
http://hack.org/mc/projects/mcwm/
http://i3wm.org/
http://awesome.naquadah.org/
https://projects.mini-dweeb.org/documents/2 (documentation for porting awesome wm)
IIRC kwin is now xcb based too

https://github.com/rpav/cl-xcb-xlib-demos (common lisp demos)
https://github.com/jvvv/xsetroot-xcb
https://github.com/leonnnn/pyxtrlock (python screen locker)
https://github.com/Heaumer/xmpdp (music player daemon)
https://github.com/paradoxxxzero/qstyle (composite mgr in python)
https://github.com/comick/finalcm (composite mgr in c)
https://code.google.com/p/pycompmgr/ (composite mgr in python)
http://unagi.mini-dweeb.org/ (composit mgr)
  https://projects.mini-dweeb.org/documents/1 (documentation for writing composite mgr)
https://github.com/Josko/switch (switch X screens)
https://github.com/ryanflannery/xtabs (tab manager)
https://github.com/Factoid/xserver-client-test (test ddx drivers)
https://github.com/rliang/cpbar (panel that displays text using Cairo and Pango)
https://github.com/jimenezrick/dwmstatus (bar utility for dwm)
https://github.com/ben0x539/overlay-thing (uses inotify, shm and sockets)
https://github.com/bluetech/libXamine
http://wmc2d.sourceforge.net/ (coretemp/corefreq monitor dockapp)
http://wmdia.sourceforge.net/ (creates window with background pixmap and click actions)
http://wmcpumon.sourceforge.net/ (multi CPU system monitor )

Toolkits
http://git.enlightenment.org/core/efl.git/tree/src/lib/ecore_x/xcb (e17)
https://github.com/Mithos/ECPC (widget toolkit stub - GPL3)
http://www.netsurf-browser.org/projects/libnsfb/
 + http://git.netsurf-browser.org/netsurf.git/tree/framebuffer
https://github.com/gsingh93/ui-toolkit (C++ stub)
https://github.com/crzwdjk/rabbit-tk (C++, cairo-xcb)
http://freecode.com/projects/rapicorn (python, C++ cairo LGPL2.1)
http://gtk-xcb.sourceforge.net/ (based on gtk+-2.6 pre-cairo and old XCBNaming)
https://git.gnome.org/browse/gtk+/log/?h=xcb (gtk3 partial implementation)

and some misc notes
http://www.mini-dweeb.org/coding/c/xcb/TODO-xcb-keyboard
http://www.mini-dweeb.org/coding/c/pcompmgr/report.pdf
http://kesakoodi2k9.wordpress.com/2009/06/11/discoveries-about-xcb-xlib-glx-and-opengl/

> Yeah, I guess we need to ping the freedesktop.org admins harder to fix
> https://bugs.freedesktop.org/show_bug.cgi?id=68700

Perhaps they want to expedite the transition to the new wiki?
http://wiki.freedesktop.org/sitewranglers/wiki/401/
Apparently I need to get gpg - its been almost 20 years since I've used it.


More information about the Xcb mailing list