Move get_output_for_workspace() to i3test

This commit is contained in:
Orestis Floros 2018-03-28 01:57:54 +03:00
parent bc439de755
commit 1d5b43c18f
No known key found for this signature in database
GPG Key ID: E9AD9F32E401E38F
3 changed files with 24 additions and 30 deletions

View File

@ -26,6 +26,7 @@ use Data::Dumper ();
use Exporter ();
our @EXPORT = qw(
get_workspace_names
get_output_for_workspace
get_unused_workspace
fresh_workspace
get_ws_content
@ -402,6 +403,29 @@ sub get_workspace_names {
[ map { $_->{name} } @cons ]
}
=head2 get_output_for_workspace()
Returns the name of the output on which this workspace resides
cmd 'focus output fake-1';
cmd 'workspace 1';
is(get_output_for_workspace('1', 'fake-0', 'Workspace 1 in output fake-0');
=cut
sub get_output_for_workspace {
my $ws_name = shift @_;
my $i3 = i3(get_socket_path());
my $tree = $i3->get_tree->recv;
my @outputs = @{$tree->{nodes}};
foreach (grep { not $_->{name} =~ /^__/ } @outputs) {
my $output = $_->{name};
foreach (grep { $_->{name} =~ "content" } @{$_->{nodes}}) {
return $output if $_->{nodes}[0]->{name} =~ $ws_name;
}
}
}
=head2 get_unused_workspace
Returns a workspace name which has not yet been used. See also

View File

@ -30,21 +30,6 @@ workspace 2:override output fake-1
fake-outputs 1024x768+0+0,1024x768+1024+0
EOT
my $i3 = i3(get_socket_path());
$i3->connect->recv;
# Returns the name of the output on which this workspace resides
sub get_output_for_workspace {
my $ws_name = shift @_;
foreach (grep { not $_->{name} =~ /^__/ } @{$i3->get_tree->recv->{nodes}}) {
my $output = $_->{name};
foreach (grep { $_->{name} =~ "content" } @{$_->{nodes}}) {
return $output if $_->{nodes}[0]->{name} =~ $ws_name;
}
}
}
################################################################################
# Workspace assignments with bare numbers should be interpreted as `workspace
# number` config directives. Any workspace beginning with that number should be

View File

@ -31,21 +31,6 @@ workspace baz output fake-1
workspace 5 output left
EOT
my $i3 = i3(get_socket_path());
$i3->connect->recv;
# Returns the name of the output on which this workspace resides
sub get_output_for_workspace {
my $ws_name = shift @_;
foreach (grep { not $_->{name} =~ /^__/ } @{$i3->get_tree->recv->{nodes}}) {
my $output = $_->{name};
foreach (grep { $_->{name} =~ "content" } @{$_->{nodes}}) {
return $output if $_->{nodes}[0]->{name} =~ $ws_name;
}
}
}
##########################################################################
# Renaming the workspace to an unassigned name does not move the workspace
# (regression test)