I have now got ratpoison working almost perfectly. There is a bit of a hack to get the initial layout as ratpoison was running my .ratpoisonrc quickly enough that all the apps ended up in the final frame rather than the one that was focused when I called the exec line to start them. The hack is that I do the laying out by running the commands in .rat_layout after the apps have finished loading with C-t l

Attached is the xorg.conf that puts my laptop into a setup useful for presenting: it mirrors the middle bit of the internal screen to the external display.

The important parts for doing this are to have two "Device" sections with different Identifiers, and one of them having Screen 0 and one Screen 1. Then two "Screen" sections using the two devices, then a "ServerLayout" sections which does the actual dial screen configuration. This has two Screen lines:

Screen 0 "Internal" 0 0Screen 1 "External" 128 16

The numbers are the position of the top left of the screens in pixels. I have the internal at the origin and the external offset by 128 pixels horizontally and 16 pixels vertically (half the difference in resolution in each direction between the two screens). You can also use LeftOf, RightOf followed by a Screen Identifier to position screens relative to others if you're actually using a dual screen set up.