This page is a record of things that we would like to see XWinX doing, and serves as an overview of the direction that we are heading in. Please contact us first if you would like to help out in any of these areas, we will be able to fill you in with all the information you may need, and make sure it hasn't been done already.
XWinX could do with a decent logo, to be used on these webpages, and also as an icon for the window that XWinX creates on the X server. Something fairly simple and memorable would be best. Hopefully something related to X Windows and/or MS Windows, but still something unique, original and memorable. Obviously it would need to be recognisable as a small 16x16 pixel icon.
Keyboard is now relatively complete and tested, but I'm sure an exotic language or layout will still break it. Test it out, improve it if you know C (it's pretty simple to figure out, all in xwxkeyboard.c), and let us know how you go.
While the mouse support is fully implemented (including wheel support!), XWinX never changes the look of the cursor on the X server. It doesn't change when it changes between the arrow, hand, resize cursor or whatever on the Windows® machine.
I have looked into this, and it is feasible to send the Windows® cursor to the X server, but at this stage I'm not sure how to tell when the cursor has changed on the Windows® side. I don't want to have to periodically check if it's changed, there must be an event or something, so if you know, drop us an email!
Speed is probably the most important feature of any remote control software. We want XWinX to be as fast as possible. Our primary goal is to get XWinX as fast as possible, and then try and optimise it to minimise the CPU cycles and network bandwidth required to reach that speed, without sacrificing any of it.
There is no one recipe for speed, it's always a compromise. Algorithms that are optimised to quickly detect and transmit a tooltip, or a new character in a word processor will be lousy for transmitting a whole new window to the X server, and vice versa. It's all about tweaking our algorithms so that they work as well as possible in as many situations as possible. We realise that while we will probably never settle on the change detection and transmission code, there will always be tweaks to improve performance in certain situations. It is, and will forever be, a work in progress.
It is possible that using XIE to send large images to the X server compressed could make transfer faster. We would like to try this, can anyone offer any advice (or code!) on using XIE? It's something we think would probably help, but haven't had a chance to try yet.
XWinX should be able to respond to XDMCP packets, so that you can connect by running X -query hostname to get a windows desktop full screen with your X server. Implementation of this has begun, but isn't complete.
When I explain to people that XWinX runs on Windows® sometimes they ask me whether it's possible to run it on other platforms. Most of the time they mean will it ever be ported to Linux, which basically means that they've missed the point - XWinX brings the X11 protocol that has been supported by Linux X applications since day one to Windows®. X11 applications can already run seamlessley across the network using the X11 protocol, all XWinX does is allows Windows® to do the same.
XWinX could, however, be ported to other non-X11 GUI environments, eg MacOS, OS/2, etc. There isn't really very much code that's specific to Win32®, and XWinX could potentially be ported to any environment that:
I would imagine that many systems would satisfy these requirements, since xlib is amazingly portable, and there have to be functions to simulate keyboard and mouse clicks for hardware drivers for these devices to use. I'd have thought pretty much any GUI would allow you to capture the screen somehow.
If I ever have access to a suitable system, I'll look into it. I'd also be perfectly happy to assist anyone who's interested in porting XWinX to another platform.
XWinX should be able to create a window on the X server and just send graphics for one application, just like "published applications" with Citrix MetaFrame®. This could be done by running xwinx notepad.exe on the command line, which would run notepad.exe, and send just that window to the X server, and kill notepad.exe when the X11 window gets shut.
Also, it might be handy to be able to run xwinx -title "Internet Explorer", which would send any existing MS Windows windows with titles containing the -title string to the X server.
Can anyone offer any advice on how to get a bitmap handle (HBITMAP) for a single Win32® window?
When XWinX is reaching maturity with its features, it will be implemented as an MS Windows® service to listen for requests via XDMCP and HTTP.