i3test::XTEST: don’t “use i3test” to avoid clobbering state

Before this commit, the $i3_autostart variable was accidentally overridden.
This commit is contained in:
Michael Stapelberg
2017-09-14 11:44:49 +02:00
parent 5d9db61dda
commit 28bfeadbb0
3 changed files with 26 additions and 9 deletions

View File

@ -5,9 +5,13 @@ use strict;
use warnings;
use v5.10;
use X11::XCB qw(GET_PROPERTY_TYPE_ANY);
use X11::XCB::Connection;
use Exporter qw(import);
our @EXPORT = qw(
slurp
get_socket_path
);
=encoding utf-8
@ -38,6 +42,25 @@ sub slurp {
return $content;
}
=head2 get_socket_path([X11::XCB::Connection])
Gets the socket path from the C<I3_SOCKET_PATH> atom stored on the X11 root
window.
=cut
sub get_socket_path {
my ($x) = @_;
$x //= X11::XCB::Connection->new();
my $atom = $x->atom(name => 'I3_SOCKET_PATH');
my $cookie = $x->get_property(0, $x->get_root_window(), $atom->id, GET_PROPERTY_TYPE_ANY, 0, 256);
my $reply = $x->get_property_reply($cookie->{sequence});
my $socketpath = $reply->{value};
if ($socketpath eq "/tmp/nested-$ENV{DISPLAY}") {
$socketpath .= '-activation';
}
return $socketpath;
}
=head1 AUTHOR
Michael Stapelberg <michael@i3wm.org>