I have this in my .screenrc
caption always "%{= Kw} [%0c] %-Lw%{= KW}[%50>%n%f* %t]%{= Kw}%+Lw%=| %l | ${FULLHOST}"
It normally displays something like this:
[01:06] 0$ vim 1$ top 2-$ tail [3$* ~] | 0.26 0.54 0.36 | machine.domain.com
However, when I have lots of windows open, the data on the right is pushed off the edge and truncated:
[01:07] 0$ vim 1$ top 2$ tail 3$ ~ 4$ ~ 5$ ~ 6-$ ~ [7$* ~] | 0.21 0.46 0.34 | mac
How can I change the caption command so it will truncate the window list if neccessary, rather than pushing the right information off the edge? Bonus points if the active window is always displayed too.
Another solution, that I'm currently using. Instead of '%=' as in the original line, or '%-30=' in bender's (which aligns to the -30% (aka 70%) mark), I'm using '%-043=' (which aligns to the -43 character mark). But of course this has the same problem as bender's, where the amount I need to offset changes for each server. The solution is to edit the .screenrc per-server, with a command like this:
(The 19 is the number of characters used by the load display and spacing)
Since my .screenrc is generated by my shell's .rc file if it's not there, I can immediately run this command after doing so and end up with a correctly offset alignment for each server. Not elegant, but it works!
Remaining problems, that I don't really care about enough to solve:
I use:
This displays something like:
This keeps the time and date on the status line and the active window in the list as the window list size grows. The magic bit you're missing is a defined width for the part that you want to keep on the right hand side. This is the "%-12=" width directive in my caption command.
Try something like:
You'll need to play with the width (%-30= above) to get your complete hostname to display.