External Monitor:
Some problems are caused by running the Thinkpads with an external monitor
at one resolution and using the LCD with another. You can not change
the X desktop size on the fly. You can change the resolution, but you have
to use edge scrolling.
X could not do it until 4.1, but it will now automatically detect whether you have an external monitor attached. With my current configuration, when I restart X, it comes up at 1280x1024 if it is hooked up to the external monitor or 1024x768 if the LCD is on.
Mike Anderson had previously experimented with the ServerLayout section of the XF86Config-4 file. He believes this is intended for multi-head, but with the -layout command line option it should work.
Mouse
For the external mouse, I think that the best solution is to use a USB
mouse. In the Thinkpads, there is a "PS/2 mixer" mechanism that combines
the input from the external PS/2 mouse and the Trackpoint to
present a single mouse to the system. This mixer also strips out some
of the extra functions of PS/2 mice, such as the mouse wheel messages. Some
special commands need to be sent to the mouse controller to get it to let
these messages pass. Linux doesn't do this by default, but there
was a patch a little while ago to fix this:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0108.0/0144.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0108.0/0218.html
As I said, I just use a USB mouse, this bypasses all of the PS/2
related problems.
In order to use more mice, you need more InputDevice entries in the
ServerLayout section of XF86Config:
Section "ServerLayout" Identifier "Anaconda Configured" Screen 0 "Screen0" 0 0 InputDevice "TrackPoint" "CorePointer" InputDevice "WirelessMouseMan" "SendCoreEvents" InputDevice "Keyboard0" "CoreKeyboard" EndSection
Here are my mouse input device sections:
Notice the /dev/input/mice as the "Device".
/dev/input/mice is an aggregate of all mice; it also allows you to hot-plug mice.
Section "InputDevice" Identifier "WirelessMouseMan" Driver "mouse" Option "Buttons" "5" Option "Resolution" "400" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mouse0" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "TrackPoint" Driver "mouse" Option "Buttons" "3" Option "Resolution" "400" Option "Protocol" "PS/2" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" EndSection
Dave Hansen has attached his whole XF86Config if anyone wants to take a look.
This could be used to change your X configuration files on the fly, or other fun things (switch your network config, etc.)
If anyone wants to work with Greg KH on adding some basic hooks to the linux-hotplug package for this, let him know.
Linux-hotplug: http://linux-hotplug.sf.net/