summaryrefslogtreecommitdiffstats
path: root/.config/polybar/scripts/focus
diff options
context:
space:
mode:
Diffstat (limited to '.config/polybar/scripts/focus')
-rwxr-xr-x.config/polybar/scripts/focus17
1 files changed, 13 insertions, 4 deletions
diff --git a/.config/polybar/scripts/focus b/.config/polybar/scripts/focus
index 49d46d2..87ee19b 100755
--- a/.config/polybar/scripts/focus
+++ b/.config/polybar/scripts/focus
@@ -17,14 +17,22 @@
17 17
18use strict; 18use strict;
19use warnings; 19use warnings;
20use IO::CaptureOutput qw/capture_exec/; 20use Capture::Tiny ':all';
21 21
22my ($stdout, $stderr, $success, $exit_code) = capture_exec("task custom_focus"); 22my ($stdout, $stderr, $exit_code) = capture {
23 system("task custom_focus");
24};
23 25
24if ($stderr =~ /No matches\./) { 26if ($stderr =~ /No matches\./) {
25 system 'echo "${SEMESTER_THEME}"'; 27 system 'echo "${SEMESTER_THEME}"';
26 exit; 28 exit;
27} 29}
30
31if ($stderr =~ /database is locked/) {
32 system 'echo "${SEMESTER_THEME}"';
33 exit;
34}
35
28my $active_task_maybe = $stdout; 36my $active_task_maybe = $stdout;
29 37
30$active_task_maybe =~ s/^\s+|\s+$//g; 38$active_task_maybe =~ s/^\s+|\s+$//g;
@@ -32,8 +40,9 @@ $active_task_maybe =~ s/^\s+|\s+$//g;
32my @lines = split /\n/, $active_task_maybe; 40my @lines = split /\n/, $active_task_maybe;
33 41
34my $task = $lines[2]; 42my $task = $lines[2];
35$task =~ s/^\s+|\s+$//g; # left and right trim 43$task =~ s/^\s+|\s+$//g; # left and right trim
36$task =~ s/\s+/ /g; # reduce multiple whitespace into one 44$task =~ s/\s+/ /g; # reduce multiple whitespace into one
45$task =~ s/&/&/g; # escape ampersands
37 46
38my $context = `task context | grep yes | cut -d' ' -f1`; 47my $context = `task context | grep yes | cut -d' ' -f1`;
39 48