The adventure that is figuring out how to do everything I do on my old ThinkPad T30 laptop under Windows XP on my new ThinkPad X61 tablet under Windows Vista continues. The latest was how to start up the Cygwin X server to I can hack my Linux servers from the new laptop.
Several other folks have reported the issues with the Cygwin fork() call under Vista in various contexts, including when running the Cygwin shell script startx. I don't have a fix for that. Instead I poked around my XP laptop and discovered that I had created a shortcut named startx that in fact ran the batch script /usr/X11R6/bin/startxwin.bat. So in short, I've never been using the stock Cygwin startx script under XP ever since I installed Cygwin on my old T30 four years ago. I have absolutely no memory of what troubleshooting I may have done back then to arrive at this solution. But it works under Vista too.
I diffed my XP batch script and the latest Cygwin batch script I downloaded and installed on Vista just a couple of days ago. The only differences are local changes: I commented out the xterm and added an xhost + just to make my life easier behind the Digital Aggregates firewall.
I am now happily using X windows from my Linux systems on my Vista tablet. As always, your mileage may vary, as testing continues.
This is currently the most popular single article I've ever written for this blog, which tells you something about the pain people are going through to be productive using Vista. If you've read the comments, you know that Cygwin X server on Vista has broken for me at least once, I'm guessing due to Vista updates. What broke it, I have no fracking clue. The X server started up under Vista just fine, I could run X applications like xterm from my Linux systems or even from Cygwin on my Vista system itself, but no windows appeared on my Vista screen.
After some troubleshooting, I ended up going to C:\cygwin\usr\X11R6\bin (your mileage may vary depending on where you chose to install Cygwin), right-clicking on XWin.exe and going to Properties, selecting the Compatibility tab, and enabling Run this program in compatibility mode for Windows XP (Service Pack 2). Selecting run as Administrator not only didn't fix the problem, it kept X server from coming up at all (I got a Vista error popup).
You can be sure when my evil plans for world conquest come to fruition, things are going to be run differently.
After living with my current setup for a couple of months since my last update, I find that this solution does not work reliably either. Sometimes I can get it to work again by bringing up the Task Manager, ending XWin.exe, and restarting it. Sometimes not. I tried executing the commonly cited tip of bringing up a Windows cmd window, cd C:\cygwin\bin and ash -c rebaseall (which apparently fixes some DLL address space collision issues that cause the problem with cygwin fork that originally plagued me), but to no avail.
Instead I've chucked the whole thing and have installed Xming, a native port of X to Windows that does not rely on cygwin at all. I'll let you know how it goes.
Over the past couple of years I've chucked almost the whole Windows thing. I replaced Windows Vista with Windows 7 on my ThinkPad X61, replaced my daily use of that same laptop with a MacBook Air, and replaced my old IBM ThinkPad T30 running Windows XP that I had used mostly as an X window server to my Linux systems with a Mac Mini with a 27" Cinema display. I still use the X61 from time to time to run a small amount of Windows-centric software I need to run my company. But all my daily work is now all Macs with a couple of Linux servers underneath.