What happened to my Ctrl-+/- zoom in Xorg?

Older X.org and XFree86 used to have this neat feature where pressing Ctrl+<numpad +> and Ctrl+<numpad -> would cycle through the screen modes defined in your config file in the "Screen" section, effectively switching screen modes on the fly and letting you pan around the full virtual screen size with the mouse.

This was a really useful feature for zooming in on small details, or to blow up videos without incurring high CPU overhead.

But since about X.org 1.7 this feature seems to be missing.  I've been researching and discovered why it's missing, and what to do about it.

MS-Windows focus-follows-mouse Registry hacks

I like the "focus follows mouse" window-focussing model from X11, because

• I don't have to click on the window, just move the mouse and the window it's over is focussed
• I can focus a window without bringing it to the front, which is sometimes handy. If I want it in front, I can click it.

However MS-Windows follows the old-fashioned, Macintosh/Smalltalk style of having users click on a window to focus it for the keyboard. How do you make MS-Windows behave more like X11?

XMing screen size and changing multiple monitors

My work's notebook (Windows XP) is running Xming as it's X11 server, and it travels between work, home and on the train.

My work office has a docking station and a rotating second display. Typically if I start Xming with this display plugged in, Xming will adjust it's screen size to use both displays, but if I start it without the screen plugged in, it'll size to just the notebook screen. If I later add the 2nd screen (by docking the notebook), Xming won't use it without a restart. Also if I rotate the screen, only the top 1200 pixels will be used by Xming.

The solution is to specify a screen size to begin with that is as wide and tall as both of the screens. On my docked notebook the two displays are the notebook's display (1920x1200 pixels)  and 2nd display (1600x1200 pixels, which rotates to 1200x1600). So that means the combined screen width is 3520 pixels, and the tallest screen hight is 1600 pixels. Specify this to Xming when it starts:

path\to\xming.exe :0 -clipboard -multiwindow -screen 0 3520x1600

Now I can add/remove/rotate the second screen and still use all of it without restarting Xming.

Multiple Xming servers on a single Windows host

One use-case we have at work for Xming is to be the X11 server on a Windows RDP terminal server. For security reasons (don't ask!) we can only access certain Unix hosts via an RDP session from our desktops, not directly over the campus LAN. So, we installed Xming on the TS and it works well. Except if two or more people wish to use it at once. Then it's first come, first served.

Trouble with the New X11 server in Cygwin

I recently upgraded my Cygwin install and noticed that Cygwin has switched it's X server XWin.exe from the XFree86 codebase to the Xorg codebase. Besides an updated logo, it also has some other side-effects.

Remote desktop access on SuSE: Cygwin, X, XDMCP and SSH? Nope. FreeNX!

MJL20080827 -- Update:  I Just realised that this is one of my top-visited pages and it's a totally disorganised and incongruent pile of... What's worse is, I've never updated it since the promised update back in March 2007!

Let me clear things up (and save you wading through the whole article): If you want remote access to your openSUSE desktop from a networked thin client, then forget about X11, XDMCP, VNC or tunneling X through SSH. Use the NX protocol. You'll need to do the following:

1. Install FreeNX on your openSUSE host. Some (slightly outdated, but usable) instructions are in Chapter 9 of the openSUSE 10.2 Reference manual. If you're using openSUSE 11.0 or newer, get the latest FreeNX package from the openSUSE Build Service (there are one-click install buttons)
2. Install an NX client on your remote terminal(s). Nomachine has free NX clients for Linux, Mac, Windows and Solaris (even some experimental ones for PlayStation 2 and Zaurus!). If your remote terminal is running openSUSE, you could alternatively get an open-source NX client from the build service (or ask yourself: I'm running X locally, so why don't I just use good ole SSH and X11?)