source: ntrip/trunk/BNC/scripts/helpScreenshots/start_display.sh

Last change on this file was 11160, checked in by stuerze, 5 days ago

screenshots are updated

  • Property svn:executable set to *
File size: 2.0 KB
Line 
1#!/bin/sh
2# Start a virtual X display with a window manager for shoot.py:
3# Xvfb (2600x1800) and openbox on $BNC_SHOT_DISPLAY (default :99).
4#
5# Xvfb, openbox and xdotool are taken from the system if installed. Otherwise
6# their Debian/Ubuntu packages are downloaded (apt-get download, no root needed)
7# and unpacked into $BNC_SHOT_PREFIX (default ~/.cache/bnc_screenshot_tools);
8# shoot.py finds xdotool there via the same variable.
9#
10# scripts/helpScreenshots/start_display.sh start
11# scripts/helpScreenshots/start_display.sh stop end Xvfb and openbox again
12
13set -e
14DISP=${BNC_SHOT_DISPLAY:-:99}
15PREFIX=${BNC_SHOT_PREFIX:-$HOME/.cache/bnc_screenshot_tools}
16PIDS=${PREFIX}/display${DISP#:}.pids
17
18if [ "$1" = "stop" ]; then
19 [ -f "$PIDS" ] && kill $(cat "$PIDS") 2>/dev/null || true
20 rm -f "$PIDS"
21 echo "display $DISP stopped"
22 exit 0
23fi
24
25XVFB=$(command -v Xvfb || true)
26OPENBOX=$(command -v openbox || true)
27XDOTOOL=$(command -v xdotool || true)
28LIBS=""
29if [ -z "$XVFB" ] || [ -z "$OPENBOX" ] || [ -z "$XDOTOOL" ]; then
30 if [ ! -x "$PREFIX/root/usr/bin/xdotool" ]; then
31 echo "downloading Xvfb, openbox and xdotool packages to $PREFIX ..."
32 mkdir -p "$PREFIX/debs" "$PREFIX/root"
33 (cd "$PREFIX/debs" && apt-get download xvfb xdotool libxdo3 openbox libobrender32v5 \
34 libobt2v5 libimlib2 libstartup-notification0 libxcb-util1)
35 for f in "$PREFIX"/debs/*.deb; do dpkg -x "$f" "$PREFIX/root"; done
36 fi
37 [ -n "$XVFB" ] || XVFB=$PREFIX/root/usr/bin/Xvfb
38 [ -n "$OPENBOX" ] || OPENBOX=$PREFIX/root/usr/bin/openbox
39 LIBS=$PREFIX/root/usr/lib/x86_64-linux-gnu
40fi
41
42mkdir -p "$PREFIX"
43"$XVFB" "$DISP" -screen 0 2600x1800x24 -nolisten tcp > "$PREFIX/xvfb.log" 2>&1 &
44echo $! > "$PIDS"
45for i in 1 2 3 4 5 6 7 8 9 10; do
46 [ -e "/tmp/.X11-unix/X${DISP#:}" ] && break
47 sleep 1
48done
49env DISPLAY="$DISP" LD_LIBRARY_PATH="$LIBS" XDG_CONFIG_DIRS="$PREFIX/root/etc/xdg:/etc/xdg" \
50 XDG_DATA_DIRS="$PREFIX/root/usr/share:/usr/share" "$OPENBOX" > "$PREFIX/openbox.log" 2>&1 &
51echo $! >> "$PIDS"
52sleep 2
53echo "display $DISP running (Xvfb + openbox); stop with: $0 stop"
Note: See TracBrowser for help on using the repository browser.