Just thought some of you might be interested in a new project I started on Sourceforge called Screenwm. It's basically a single Perl executable and a set of key bindings that adds some new capabilities to Screen. It is meant to work with Bill Pursell's excellent vertical split patch (although it also works without). The major features are:
1. Multiple region layouts within a single session
As a simple example, you might have one layout that has 2 horizontally split regions and another that has 2 vertically split regions. With Screenwm, you can switch between them instantaneously using layout-specific versions of the next, prev, other, and select commands. Layouts can be arbitrarily complex.
2. Vi-like movement within complex layouts
When using vertical splits, it might take any number of focus up/down commands to reach a region that is right next to the current one. Screenwm has bindings for left/right movement as well as up/down movement that automatically calculate region boundaries and move directly to the region in the given direction with a single key press.
3. Window associations by region
Essentially, each region is treated as if it has its own set of windows associated with it. Thus, even though you might have 30 windows in a given Screen session, the next, prev, and select commands will cycle through only the windows that are associated with the current region instead of all 30 of them. I find this more natural than the default model, especially with vertical splits, as it is essentially equivalent to multiple xterms (or whatever) side by side with each running its own instance of Screen (but with no need to use the mouse! :) ).
4. Control of remote/embedded sessions using standard key bindings
Since using different escape keys for remote Screen sessions is a pain, this allows windows to be tagged as a remote/embedded session, after which commands sent to the local session will be forwarded on automatically when appropriate. For example, when working in a tagged window, and you want to create a new window in the remote session, you just use ^ac as normal instead of ^aac. You can customize the behavior to forward on only the commands that you want forwarded. Basically, this feature allows you to treat multiple local and remote Screen sessions as a single seamlessly integrated session.