aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2023-05-19 15:26:52 +0100
committerdakkar <dakkar@thenautilus.net>2023-05-19 15:26:52 +0100
commitaf29e909edc4faaec4f581c1f818ec7ddd1cfb91 (patch)
treedf0ccbceb3ff75981e3752ac2df2808541e151bf
parentmake sure `FvwmCommandS` is started (diff)
downloadfvwm-crystal-af29e909edc4faaec4f581c1f818ec7ddd1cfb91.tar.gz
fvwm-crystal-af29e909edc4faaec4f581c1f818ec7ddd1cfb91.tar.bz2
fvwm-crystal-af29e909edc4faaec4f581c1f818ec7ddd1cfb91.zip
fix fvwm-screens
* use pids for `-r`, but still show names * use `StartTerminal` instead of `A` because `A` doesn't seem to work with arguments?? * `AddToMenu` because the rest of crystal does that now
-rwxr-xr-xscripts/fvwm-screen.pl28
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