X Windows - on Windows!

Development - To-Do List

See also the Cygwin/X category in bugzilla

Following is a list of open tasks on the Cygwin/X project:

Please note that this list is in no particular order, and presence on this list doesn't guarantee that a task is desirable, practical or even possible. Feel free to get started, though...

Summary Description

There are always bugs. We need to find them and fix them.

native IME - XIM bridge

Kensuke Matsuzaki wrote some clever code which provides a bridge between Windows native IME and XIM. This should be brought up to date and integrated.

Animated cursors

Are we converting every frame of an animated cursor every time it appears? Build on the work in this commit to allow the XWin DDX visibility of the animated cursor, so it can do something cleverer.

-mwextwm mode and xwinwm

Needs fixing to build, and work again. Should build and work now, but needs looking at to see what it lacks compared to the internal WM. Is it possible to replace the internal WM with this, in the long term?


The XVideo extension is currently disabled. There is some skeleton code in the server, but it doesn't do anything yet. Possible to map Xv/XvMC to some DirectX or DxVA API?


Find and fix Composite bugs in rooted mode. Cunning plans for compositing in multiwindow mode (using Win2K+ window transparency)? (Integrated WM has to become composite-aware for this). Bug #10997

Improve Windows clipboard integration

Stamp out remaining clipboard bugs.

Extend the Cygwin/X clipboard manager, to handle data types other than XA_STRING, COMPOUND_TEXT, and UTF8_STRING; for example, BITMAP, PIXMAP, etc.

Crash reporting

Automated upload of crash reports.

OpenGL acceleration

Testing of the implementation of indirect OpenGL acceleration using native WGL. Additional information is in the email asking for testing. Bug #10472

Testing of the implementation of direct OpenGL acceleration using native WGL.

MultiWindow DirectDraw and DirectDraw NL

Blit updates from a DirectDraw shadow framebuffer to the updated Win32 window instead of blitting from a GDI shadow framebuffer. This should be easy to start and should require only a single DirectDraw surface for the whole screen. It would be very important to just demonstrate that this can be done; clipping the blits to properly handle window z-order and such can be finished.

Emulate PseudoColor on TrueColor

Provide emulation of PseudoColor visuals (typically 8-bit palette-based visuals) on top of the default TrueColor visual (when running in 15, 16, 24, or 32 bit color depths). This will allow a lot of CAD-type applications that require PseudoColor to be run when Windows is in a color mode higher than 8 bits per pixel. The general idea here is to add checks to any copying of data between offscreen and onscreen, as well as between areas on the screen; these checks test for differing visual types and convert the pixels and colors accordingly.

See also upstream bug #4770.

DirectDraw windowed PseudoColor

Figure out a satisfactory solution for enabling DirectDraw engines to support PseudoColor visuals when running in 8 bit color modes. DirectDraw reserves the first ten and the last ten colors in each DirectDrawPalette object when running in windowed mode. Therefore, PseudoColor visuals are only supported with DirectDraw engines when running in fullscreen 8 bit color modes.