wsbar: print an error and exit after not being able to talk to i3 for 2 seconds (Thanks badboy)
This commit is contained in:
parent
30b275d27f
commit
f6227bec6c
19
i3-wsbar
19
i3-wsbar
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue