New screen features available

2007-02-06 Thread Michael Schroeder

Hi Screen Users,

you probably wonder why the new version of screen is not already
available. Well, it got delayed a bit because of a couple of new
features I've added. The development version is available from
GNU savanna: 

cvs -z3 -d:pserver:[EMAIL PROTECTED]:/sources/screen co screen

Here are the new features:

- vertical split, complete with resizing

  ^A |   split vertically

  resize [-l] [-h] [-v] amount

-l : resize is local to slice
-h : resize horizontally
-v : resize vertically

  amount: 10   resize to size 10
  amount: +10  make 10 bigger
  amount: -10  make 10 smaller
  amount: 10%  make it 10% of all
  amount: =make all windows equal

- better resize code using weights

  the layout will stay in shape even after heavy resizing

- window groups

  currently a bit ugly to create:
  screen -t name //group
  creates a group named name

  a group is a subset of windows, ^Aw will only display the
  current group and next/prev will not leave the group.
  Use ^A to list all windows of the current group (this also
  leaves to group, so that next/prev or a second ^A will
  show the other windows.

- layouts

  A layout stores the current setup of the display, i.e. all the
  slices and the window assignments.

  layout save Desktop1

  will save the current setup under the name Desktop1. If you
  detach and reattach later on, the layout will automatically 
  be restored. Desktop1 will become the current layout.

  layout autosave off

  This turns the autosafe feature off. Layouts are automatically
  saved if autosave is on and the user detachs or switches to
  another layout.

  layout new Desktop2

  Create a new empty layout named Desktop2.

  layout name foo

  Rename the current layout to foo.

  layout next
  layout prev
  layout load name

  Load the next/prev layout / the layout named name.

  layout attach :last
  layout attach name

  Set the layout used when somebody is attaching. Default is :last,
  this is the layout that was current when the last detach was done.
  
  Besides the restoring of the screen on re-attach, layouts can be
  used to implement a kind of virtual desktop in screen. Say
  you put layout save Desktop1 in your ~/.screenrc. If you
  need a new Desktop, do ^A:layout new Desktop2. You can then
  use layout next to switch between both layouts.

So, feedback welcome. You probably have a lot of suggestions and
enhancement requests. Sorry that development is a bit slow at
the moment due to not enough spare time...

Cheers,
  Michael.

-- 
Michael Schroeder   [EMAIL PROTECTED]
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}


___
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users


Re: New screen features available

2007-02-06 Thread cga2000
On Tue, Feb 06, 2007 at 05:34:31PM EST, Michael Schroeder wrote:
 
 Hi Screen Users,
 
 you probably wonder why the new version of screen is not already
 available. Well, it got delayed a bit because of a couple of new
 features I've added. The development version is available from
 GNU savanna: 
 
 cvs -z3 -d:pserver:[EMAIL PROTECTED]:/sources/screen co screen
 
 Here are the new features:
 
 - vertical split, complete with resizing
 
   ^A |   split vertically
 
   resize [-l] [-h] [-v] amount
 
 -l : resize is local to slice
 -h : resize horizontally
 -v : resize vertically
 
   amount: 10   resize to size 10
   amount: +10  make 10 bigger
   amount: -10  make 10 smaller
   amount: 10%  make it 10% of all
   amount: =make all windows equal
 
 - better resize code using weights
 
   the layout will stay in shape even after heavy resizing
 
 - window groups
 
   currently a bit ugly to create:
   screen -t name //group
   creates a group named name
 
   a group is a subset of windows, ^Aw will only display the
   current group and next/prev will not leave the group.
   Use ^A to list all windows of the current group (this also
   leaves to group, so that next/prev or a second ^A will
   show the other windows.
 
 - layouts
 
   A layout stores the current setup of the display, i.e. all the
   slices and the window assignments.
 
   layout save Desktop1
 
   will save the current setup under the name Desktop1. If you
   detach and reattach later on, the layout will automatically 
   be restored. Desktop1 will become the current layout.
 
   layout autosave off
 
   This turns the autosafe feature off. Layouts are automatically
   saved if autosave is on and the user detachs or switches to
   another layout.
 
   layout new Desktop2
 
   Create a new empty layout named Desktop2.
 
   layout name foo
 
   Rename the current layout to foo.
 
   layout next
   layout prev
   layout load name
 
   Load the next/prev layout / the layout named name.
 
   layout attach :last
   layout attach name
 
   Set the layout used when somebody is attaching. Default is :last,
   this is the layout that was current when the last detach was done.
   
   Besides the restoring of the screen on re-attach, layouts can be
   used to implement a kind of virtual desktop in screen. Say
   you put layout save Desktop1 in your ~/.screenrc. If you
   need a new Desktop, do ^A:layout new Desktop2. You can then
   use layout next to switch between both layouts.
 
 So, feedback welcome. You probably have a lot of suggestions and
 enhancement requests. Sorry that development is a bit slow at
 the moment due to not enough spare time...
 
 Cheers,
   Michael.

Thanks, Michael.

I have no suggestions or enhancement requests at this point but I am
very happy that the rumors I had heard about gnu/screen development
being abandoned were not true. 

I am also quite thrilled that vertical split is possible with the new
release.  Due to the high definition of current displays this had
become indispensable.

Thank you very much.

cga.








___
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users


Re: New screen features available

2007-02-06 Thread Alan Young

Michael Schroeder wrote:

So, feedback welcome. You probably have a lot of suggestions and
enhancement requests. Sorry that development is a bit slow at
the moment due to not enough spare time...


First, I'm glad to see continuing work on screen.  Thanks for doing that.

Second, I'd like to be able to have multiple status lines.  I'd like to 
be able to have a status line at the top of my screen as well as at the 
bottom.


Thanks again for your hard work.

Alan


___
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users


File descriptors and screen and you

2007-02-06 Thread Alan Young

I have a bit of perl code that I'm trying to make work:

sub DB::get_fork_TTY {

  open my $SCREEN, qq{31 screen -t 'Child $$' sh -c tty 13 ; sleep 
100 |}

or return '';

  my $tty = $SCREEN;

  return $tty;
}

I'm getting bad file descriptor errors, so I'm assuming screen is 
cleaning up what it hands to it's children.  Which makes sense.


I want to avoid going the tmp file route if at all possible.  Is there a 
way I can echo tty's output so that I can grab it from a filehandle?


I've tried a number of different methods.

Any pointers?


___
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users


string substitution for session name

2007-02-06 Thread Brian T.N. Gunney
After wanting to request a string substitution for the session name,
I decided to hack it myself.  The attached patch (to screen-4.0.2)
allows you to replace %S with the session name for the purpose of
displaying in the status line, for example:

hardstatus lastline %-Lw%{= BW}%48%n%f* %t%{-}%+Lw%  %S/%c

I found this particularly useful for those who give their sessions
specific meaningful names.  I work on several projects, having one
screen session for each project.  Each one look the same (emac, code
repository operations, ssh here, ssh there, etc) so it's not instantly
clear which session I'm looking at.  So having the session name in the
status line is helpful.

I see that there window groups in development, but using window
groups for my multiple projects in a single screen session would
not work as smoothly as having multiple sessions.

Thanks for developing this awesome tool!
-- 
Brian T.N. Gunney
diff -ru orig.screen-4.0.2/doc/screen.texinfo screen-4.0.2/doc/screen.texinfo
--- orig.screen-4.0.2/doc/screen.texinfo2003-12-05 05:51:46.0 
-0800
+++ screen-4.0.2/doc/screen.texinfo 2007-02-01 08:59:45.0 -0800
@@ -4754,6 +4754,8 @@
 window number
 @item s
 seconds
[EMAIL PROTECTED] S
+session name (@pxref{Session Name})
 @item t
 window title
 @item u
Only in screen-4.0.2/doc: screen.texinfo~
diff -ru orig.screen-4.0.2/process.c screen-4.0.2/process.c
--- orig.screen-4.0.2/process.c 2003-09-18 05:53:54.0 -0700
+++ screen-4.0.2/process.c  2007-02-01 09:05:07.0 -0800
@@ -2889,6 +2889,7 @@
  debug2(rename(%s, %s) done\n, SockPath, buf);
  strcpy(SockPath, buf);
  MakeNewEnv();
+ RefreshHStatus();
}
   break;
 case RC_SETENV:
diff -ru orig.screen-4.0.2/screen.c screen-4.0.2/screen.c
--- orig.screen-4.0.2/screen.c  2003-09-08 07:26:41.0 -0700
+++ screen-4.0.2/screen.c   2007-02-01 08:47:36.0 -0800
@@ -2601,6 +2601,18 @@
}
  p += strlen(p) - 1;
  break;
+   case 'S':
+ *p = 0;
+ if ((int)strlen(SockName)  l)
+   {
+ strcpy(p, SockName);
+ if (*p)
+   qmflag = 1;
+   }
+ p += strlen(p) - 1;
+  if (!tick || tick  5)
+ tick = 5;
+ break;
case 'F':
  p--;
  /* small hack */
___
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users