wsbar: print an error and exit after not being able to talk to i3 for 2 seconds (Thanks badboy)

This commit is contained in:
Michael Stapelberg 2010-05-26 23:40:05 +02:00
parent 30b275d27f
commit f6227bec6c
1 changed files with 19 additions and 0 deletions

View File

@ -15,6 +15,13 @@ my $stdin;
my $socket_path = undef; my $socket_path = undef;
my ($workspaces, $outputs) = ([], {}); my ($workspaces, $outputs) = ([], {});
my $last_line = ""; my $last_line = "";
my $w = AnyEvent->timer(
after => 2,
cb => sub {
say "Connection to i3 timed out. Verify socket path ($socket_path)";
exit 1;
}
);
my $command = ""; my $command = "";
my $input_on = ""; my $input_on = "";
@ -47,6 +54,16 @@ $| = 1;
# Wait a short amount of time and try to connect to i3 again # Wait a short amount of time and try to connect to i3 again
sub reconnect { sub reconnect {
my $timer; my $timer;
if (!defined($w)) {
$w = AnyEvent->timer(
after => 2,
cb => sub {
say "Connection to i3 timed out. Verify socket path ($socket_path)";
exit 1;
}
);
}
my $c = sub { my $c = sub {
$timer = AnyEvent->timer( $timer = AnyEvent->timer(
after => 0.01, after => 0.01,
@ -65,6 +82,8 @@ sub connected {
return; return;
} }
$w = undef;
$i3->subscribe({ $i3->subscribe({
workspace => \&ws_change, workspace => \&ws_change,
output => \&output_change, output => \&output_change,