An X-Client Wrapper for Microsoft Windows?
S asks: "In my opinion, one of X11's most underrated features is the ability
to export the display of an [X] application to an X-Server that can be physically separated from the application's host (use a remote display). I have used this countless times to dramatically increase my ability to 'get stuff done' from a distance. Recently I discovered Cygwin's ability to run XFree86 in rootless mode (startx -- -rootless) where there is no main X root window, and imported displays get their own 'native-looking' window on the Microsoft Windows platform. This also has saved me much headache when working from a Windows machine to do Linux-type things. My question is: Is there some way to export the display of Microsoft Windows windows to a remote X-Server? I'm not talking VNC/RFB here, and terminal services (via rdesktop) ALMOST fits the bill, but I don't want a root window. I want to simply export the display of (say... photoshop) to my X workstation. Googling is not an easy task; 'windows' is too much of a generic term to get usable results. What I have found, however, suggests
Wine as a buffer between native Windows GUI calls and the X protocol, but offers no actual solution. Does anyone know of software that allows allows Windows to export the display of
its windows to an X server (ie, an X-Client wrapper for Windows)?"
My comment isn't really helpful, but I wanted to chip in with a clarification. Rootless mode is not a feature of Cygwin, but XFree86 itself. It is of primary use for MacOS X users who want to run X apps [locally or not]. It is also useful for running a second X server on top of another, though the applications of that are particular.
I'm as mimsy as the next borogove but your mome raths are completely outgrabe.
allows you to export a single application rather than a full desktop, so it appears as if the app is running on a local machine instead of the server. I'm not sure if WTS supports it, but it's worth a try. Oh, and it doesn't play well with window-managers like Vern.
I work in retail, for the time being. Recently, they put in new time clocks and scheduling software.
The machines scattered around the store are widely varied and many of them are quite new, but all of them have the same software: Win95, and some Novell shit that looks more like a dieing gasp than a functional program.
The point? These machines suck, overall.
But that's not really the point, is it? No.
The scheduling software runs on a Win2k AS box somewhere in the store, and uses 8-bit RDP for local display. You just run the scheduling app like any other app, and a Win2k startup banner appears in the middle of the monitor, just like any other window... It runs quite fast once the session boots up.
RDP is, therefore, more flexible than the poster appears to give it credit for.
And the trick, therefore, is not some funky-ass, nonexistant X/Win32 translation suite, but just to use existing, native protocols, and one of the many free RDP clients available with X output.
Nevermind, of course, that licensing for Win2k AS is hideously expensive. You've all got an eye patch sitting around somewhere - if not, just "borrow" one from a friend.
There would be amazing advantages to doing it differently though - for more discussion on this see XOpenWin
although nothing has yet been accomplished through this project. The key things to do which would make this possible are:
- separate out the Wine GDI and x11drv dlls (see this message)
- port these dlls to cygwin
- persuade windows to use them in place of the normal gdi
If anyone is really interested in that solution, it will take time and effort, but is definitely possible. Join the mailing lists!My only nits about either modes is that you still have a root X window (standard grey crosshatch) that's started minimized but otherwise sits in the process list and can sometimes make quick switching a bit more difficult without activating the wrong X app. I'd wish that the Cygwin X server could be started as a background service such that 1) it stays off the process list, and 2) to get an xterm to a remote computer up, I would simply have to ssh to that computer via putty or cygwin's ssh, point DISPLAY back , and let loose the X applications, as opposed to having to start the X server on Windows manually each time.
"Pinky, you've left the lens cap of your mind on again." - P&TB
"I can see my house from here!" - ST:
I read some people here say there isn't such thing YET, but as a matter of fact, there WAS. Unfortunatelly, no more.
In ye good ol' DOS times, there was DESQview/X, that allowed you to run Win 3.1 in a X-Window, and display it on any X-Server. It could also turn any 386 w/ DOS in a X-terminal.
Pretty cool stuff, but probably little market share. You can see screenshots here. More info here. If you don't care for 95/2000/XP support, as it doesn't have it, you can download DESQview/X here (I didn't test it, though.
I know you specifically said "not VNC/RFB", but Alkit VNC may do what you want. It is a modified version of WinVNC that allows you to share a single window instead of the entire desktop.
I don't know what relationship (if any) it has to the modified version of TightVNC mentioned in another thread, but I've used it and it works.
They're using Display PDF which is substantially similar but dumbed down a little. I'm sure they could put a hook in to let you grab anything but the DVDs, intercepting the drawing calls.
But they're at 10.2 already and haven't yet included an X server with the distribution, I'm not hopeful for X client support any time soon.
Hopefully they get that new "optimized" X server into 10.3.
Ob-On Topic: Is there any free PC-Anywhere type project for Windows that intercepts GDI calls? That might be the best starting point.
It is just as possible to implement these features as it was for NeXTSTEP and OpenStep. However, when Apple was reimplementing the basic graphics engine (Quartz- Display PDF) to use PDF instead of PS, they choose not to implement the remote display features. Which is a shame.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
There's a library called "Detours" from Microsoft Research that aids intercepting Win32 calls.
http://research.microsoft.com/sn/detours/
nFuse is very nice but, it isn't quite as simple as you stated, So no Citrix Client roll out to your users
nFuse must have the client installed in order for it to connect to the Citrix server. However, nFuse GREATLY simplifies the installation of the client. Code can be embedded in the nFuse web page to automatically download and install an Active X client plugin for IE and Win32 Netscape users, and links to the client install can be placed on the nFuse login page for those that cannot use the Active X plugin. It does negate the need for an administrator to manually install the client software on each client machine but, client software must still be installed, either via the plugin or the user clicking the link.
Citrix offers free client software for *ANY* platform including DOS, Win32 and Pocket PC, Mac, Linux, Java and more. nFuse is a very nice add-on to Citrix and it is free. Citrix however, ain't cheap.
It may seem obvious, but if you can run the program under Linux in Wine, you can export the display anywhere you want it to go. Don't recommend it for games, but I did it once for a "real application" over my LAN once, just to try it, and it works fine.
Of course Wine doesn't run everything, but my experience is that if it does run something, it runs it stably. Try both wine and winex (the latter even if you aren't trying to run a game, I've had mixed experiences with both), and if it runs the app(s) you're looking to share, you're "done".
I know it's not perfect and I know it's not quite what you're looking for, but sometimes you have to take what you can get.
This is one of those times where "old" fxrts like me tell nostalgic war stories that begin with "You used to be able to do that...."
You used to able to do that with Desqview/X but Microsoft's "innovations" sidled it out of the market.
Now let me tell you about my what my late-1970s VCR could do that modern ones can't...
Ever dream you could fly? Get up from the Flight Sim. I Fly
XWinX is a similar project that exports a windows desktop to a remote X server. It can't run rootless yet, but that is a planned feature.