1 | #!/bin/sh
|
---|
2 | #
|
---|
3 | # @file
|
---|
4 | #
|
---|
5 | # Sun xVM VirtualBox
|
---|
6 | # X11 guest additions: dynamic display changes
|
---|
7 | #
|
---|
8 | # Copyright (C) 2008 Sun Microsystems, Inc.
|
---|
9 | #
|
---|
10 | # This file is part of VirtualBox Open Source Edition (OSE), as
|
---|
11 | # available from http://www.virtualbox.org. This file is free software;
|
---|
12 | # you can redistribute it and/or modify it under the terms of the GNU
|
---|
13 | # General Public License (GPL) as published by the Free Software
|
---|
14 | # Foundation, in version 2 as it comes in the "COPYING" file of the
|
---|
15 | # VirtualBox OSE distribution. VirtualBox OSE is distributed in the
|
---|
16 | # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
|
---|
17 | #
|
---|
18 | # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
|
---|
19 | # Clara, CA 95054 USA or visit http://www.sun.com if you need
|
---|
20 | # additional information or have any questions.
|
---|
21 | #
|
---|
22 |
|
---|
23 | #
|
---|
24 | # In order to keep things simple, we just call the X11 xrandr application
|
---|
25 | # when we receive notification of a display change instead of reimplementing
|
---|
26 | # it inside our Guest Additions client application. This saves us among
|
---|
27 | # other things having to find ways to build and link the C code on systems
|
---|
28 | # which do not support RandR 1.2. We wrap the call to xrandr in this script
|
---|
29 | # so that we can make any fiddly adjustments to the call which may be needed.
|
---|
30 | #
|
---|
31 |
|
---|
32 | randrbin=xrandr
|
---|
33 | found=`which xrandr | grep "no xrandr"`
|
---|
34 | if test ! -z "$found"; then
|
---|
35 | if test -f "/usr/X11/bin/xrandr"; then
|
---|
36 | randrbin=/usr/X11/bin/xrandr
|
---|
37 | else
|
---|
38 | exit 1
|
---|
39 | fi
|
---|
40 | fi
|
---|
41 |
|
---|
42 | # If we were called with the --test parameter, we check whether the display
|
---|
43 | # we are running on is really using the VBox video driver (and RandR 1.2).
|
---|
44 | if test "$1" = "--test"; then
|
---|
45 | ! X -version 2>&1 | grep 1.4.99.901 > /dev/null &&
|
---|
46 | ! X -version 2>&1 | grep 1.4.99.902 > /dev/null &&
|
---|
47 | ! X -version 2>&1 | grep 1.4.99.903 > /dev/null &&
|
---|
48 | ! X -version 2>&1 | grep 1.4.99.904 > /dev/null &&
|
---|
49 | ! X -version 2>&1 | grep 1.4.99.905 > /dev/null &&
|
---|
50 | $randrbin 2> /dev/null | grep VBOX1 > /dev/null
|
---|
51 | exit
|
---|
52 | fi
|
---|
53 |
|
---|
54 | # Otherwise we just switch the guest display into its preferred resolution,
|
---|
55 | # which is the one corresponding to the last video mode hint sent by the host.
|
---|
56 | $randrbin --output VBOX1 --preferred
|
---|
57 | xrefresh 2>&1 > /dev/null
|
---|