diff options
Diffstat (limited to 'scripts/fvwm-screen.pl')
-rwxr-xr-x | scripts/fvwm-screen.pl | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/scripts/fvwm-screen.pl b/scripts/fvwm-screen.pl index eea4a3c..d462b29 100755 --- a/scripts/fvwm-screen.pl +++ b/scripts/fvwm-screen.pl @@ -3,35 +3,35 @@ use strict; use warnings; sub sess_names { - map { m{^ \s* \d+ \. ([^.]+?) (?:\.\w+)? \s+}smx } @_; + map { m{^ \s* (\d+) \. (.+?) \s+}smx } @_; } # Get list of detached/attached screen sessions and hostname my @screen_out=qx(screen -list); -my @detached_sessions=sess_names grep {m{\(Detached\)}} @screen_out; -my @attached_sessions=sess_names grep {m{\(Attached\)}} @screen_out; +my %detached_sessions=reverse sess_names grep {m{\(Detached\)}} @screen_out; +my %attached_sessions=reverse sess_names grep {m{\(Attached\)}} @screen_out; -print <<'EOL' if @detached_sessions; - + "Reattach first" A screen -d -RR +print <<'EOL' if %detached_sessions; +AddToMenu /Screens "Reattach first" StartTerminal screen -d -RR EOL print <<'EOL'; - + "New Session" A screen +AddToMenu /Screens "New Session" StartTerminal screen EOL -print <<'EOL' if @detached_sessions; - + "" NoP +print <<'EOL' if %detached_sessions; +AddToMenu /Screens "" NoP EOL -print <<"EOL" for @detached_sessions; - + "$_ (a)" A screen -r "$_" +print <<"EOL" for sort keys %detached_sessions; +AddToMenu /Screens "$_ (a)" StartTerminal screen -r "$detached_sessions{$_}" EOL -print <<'EOL' if @attached_sessions; - + "" NoP +print <<'EOL' if %attached_sessions; +AddToMenu /Screens "" NoP EOL -print <<"EOL" for @attached_sessions; - + "$_ (d)" A screen -d "$_" +print <<"EOL" for sort keys %attached_sessions; +AddToMenu /Screens "$_ (d)" StartTerminal screen -d "$attached_sessions{$_}" EOL |