/usr/share/doc/libx11-protocol-other-perl/examples/xinerama-info.pl is in libx11-protocol-other-perl 28-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/usr/bin/perl -w
# Copyright 2011 Kevin Ryde
# This file is part of X11-Protocol-Other.
#
# X11-Protocol-Other is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 3, or (at your option) any
# later version.
#
# X11-Protocol-Other is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with X11-Protocol-Other. If not, see <http://www.gnu.org/licenses/>.
# Usage: perl xinerama-info.pl
#
# Print some information from the XINERAMA extension, including the layout
# of monitors making up the screen.
#
use 5.004;
use strict;
use X11::Protocol;
my $X = X11::Protocol->new;
if (! $X->init_extension('XINERAMA')) {
print "No XINERAMA on the server\n";
exit 0;
}
my ($major, $minor) = $X->PanoramiXQueryVersion (99,99);
print "Xinerama extension version $major.$minor\n";
my $flag = $X->PanoramiXGetState ($X->root);
print "state $flag\n";
my $count = $X->PanoramiXGetScreenCount ($X->root);
print "$count physical monitors\n";
foreach my $i (0 .. $count-1) {
my ($width, $height) = $X->PanoramiXGetScreenSize ($X->root, $i);
print " monitor $i size ${width}x${height}\n";
}
if (($major <=> 1 || $minor <=> 1) >= 0) {
# Xinerama 1.1 available
my $active = $X->XineramaIsActive ();
print "is active $active\n";
my @rectangles = $X->XineramaQueryScreens ();
if (@rectangles) {
print "rectangular areas\n";
foreach my $i (0 .. $#rectangles) {
my ($x, $y, $width, $height) = @{$rectangles[$i]};
print " monitor $i rectangle at $x,$y size ${width}x${height}\n";
}
} else {
print "no rectangular areas\n";
}
}
exit 0;
|