X client with per-pixel alpha composited into the native Windows desktop

Code is at http://cgit.freedesktop.org/~jturney/libxcwm/ and http://cgit.freedesktop.org/~jturney/XtoW/

This came together pretty easily, although it's just a proof-of-concept at the moment for trying  out libXcwm looking for bugs and identifying any shortcomings of the current design...

Cygwin packages available on dronecode

| No Comments
Since it's now much easier to install packages from additional repositories using Cygwin setup, I suppose I should mention what's available from http://www.dronecode.org.uk/cygwin/

As well as using that to stage releases of the Cygwin/X xorg-server package to test they are installable, it also has a few packages which might be of use to someone:

  • mesademos containing all the mesa OpenGL demo and test programs
  • xscreensaver useful for OpenGL testing, not so much as a screensaver.  It's left as an excercise for the reader to write a native .scr screensaver which starts an X server using  -displayfd and then runs the X screensaver on that server :-)
  • glean OpenGL test and benchmarking suite
  • buildbot-slave
  • llvm and llvm-gcc some experimental llvm packages

Building a cygwin crosscompiler

| No Comments
Some time ago I wrote some notes on building a GCC crosscompiler for the cygwin target, which are currently included in the Cygwin/X contributors guide in slightly modified form, but don't really belong there, so might get removed as some future date.

It would be a much better idea to use these RPM packages,though.

glxgears is not a benchmark

| No Comments


| No Comments
If your appreciate my work on open source software, and would like to buy me a beer to say thank you, you can do so by clicking this button ;-)

Cygwin/X bug list

| No Comments

In no particular order, some reported bugs:

  • Various clipboard problems, either not working or only working intermittently for some people
  • Some Solaris clients die with a BadAlloc on a XkbSetNamedIndicator request
  • Some XView toolkit clients don't close with [x]
  • Rebuilt xkdvi crashes in XtGetApplicationResources
  • IRC report that -multimonitor -rooted with primary on right seems to misclculate the screen height somehow so some of the bottom of the X screen is invisible
  • XWarpCursor() doesn't in rootless modes (not a regression!)
Some cosmetic issues that I notice:

  • Minimized windows are moved to (0,0) not unmapped: this causes the irritating punch through of menus and tooltips when the frame of the active window overlaps the (apparently) minimized window in the X screen
  • Resizing a window frame doesn't move the X focus, so an open pop-up window which is a child of the resized window gets left behind
  • Mouse isn't captured when click dragging; this makes it very hard to work with X windows which draw their own decorations

Cygwin/X X server todo list

| No Comments
The thing I'd like to see working which is the reason I started looking at it in the first place

  • RANDR extension support integrated with the native Windows WM_DISPLAYCHANGE message so X knows and does the right thing when the native Windows virtual desktop changes size due to a resolution change or monitor addition/removal
Other things

  • Composite does strange things at the moment
  • More investigation of why the 'smart scheduler' causes cygwin problems: SIGALRM every 20ms causes 'sporadic accept() failed' and deadlocks in multiwindow mode. Fixed/better with Cygwin 1.7.x?
  • Fix building with multwindow with external window manager mode.  This depends on the rootless extension, which depends on Apple's Xplugin.h :D
  • Icon conversion could use a bit more work, scaling overlarge NET_WM_ICON icons down to the right size, improving icon conversion if we could find a simple way to use a bilinear filter  Some windows still have no icon found by us, although native WMs can find them.
  • Probably should change explicit use of GetTickCount() in event generation in xwin/ to use GetTimeInMillis(). This should make things consistent if we ever wanted to use the gettimeofday() clock
  • Maybe get some patches folded back into upstream

Updating the Cygwin/X X server

| No Comments
I've been spending a bit of time recently trying to get an up to date version of the Cygwin/X X server building and working (the current version in Cygwin is a R6.9 vintage monolithic X :()

Patch-set to build X.org server 1.5.2 for cygwin
Patch-set for the current X.org git

A couple of resource were very useful: The Xming server is the same server built for mingw, and some patches for the 1.4 X server

A built version is now in cygwin ports

Graphical merge for subversion

| No Comments

Being used to doing graphical merge using ClearCase , I didn't want to have to fiddle around resolving a subversion merge by opening a bunch of files. Bizarrely I couldn't find a clear description of how to set this up, perhaps because the specifics have changed between subversion versions, so for subversion 1.5:

add in ~/.subversion/config
merge-tool-cmd = svndiffwrapper

and create svndiffwraper, somewhere on your path, a shell script which contains:

kdiff3 -m $1 $2 $3 -o $4 1>&2

Subsequent svn merge will offer you the option to (l)aunch the external program do to the merge, which will fire up kdiff3

(Obviously you can use a different tool to kdiff3, but that was the best 3-way graphical merge tool I found in a quick search)

Too many passwords...

| No Comments