use File::Find;
use File::Basename qw(basename);
use File::Temp qw(tempfile);
+use List::Util qw(first);
use Getopt::Long;
use Pod::Usage;
use AnyEvent::I3;
die "Could not parse command line options" unless $result;
-if (!defined($workspace) && !defined($output)) {
- die "One of --workspace or --output need to be specified";
-}
-
-unless (defined($workspace) ^ defined($output)) {
+if (defined($workspace) && defined($output)) {
die "Only one of --workspace or --output can be specified";
}
die "Could not connect to i3";
}
+sub get_current_workspace {
+ my $current = first { $_->{focused} } @{$i3->get_workspaces->recv};
+ return $current->{name};
+}
+
+if (!defined($workspace) && !defined($output)) {
+ $workspace = get_current_workspace();
+}
+
sub filter_containers {
my ($tree, $pred) = @_;