Updating branch refs/heads/master to 9c89becb0d42254563067c18a74702aacbf1876d (commit) from 7bb735edc8f53b2bad82b1ad4d259ab46d1b3c21 (commit)
commit 9c89becb0d42254563067c18a74702aacbf1876d Author: Christian Dywan <christ...@twotoasts.de> Date: Thu Apr 4 21:10:10 2013 +0200 Add xvfb-based automated screenshot tool tools/screenshot | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/tools/screenshot b/tools/screenshot new file mode 100755 index 0000000..110b923 --- /dev/null +++ b/tools/screenshot @@ -0,0 +1,83 @@ +#! /bin/sh +# Copyright (C) 2013 Christian Dywan <christ...@twotoasts.de> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# See the file COPYING for the full license text. + +xvfbonce() { + xvfb-run --server-args='-fbdir /tmp -screen 0 1024x768x16' \ + env LANGUAGE= UBUNTU_MENUPROXY= MOZ_PLUGIN_PATH=/ SCREENCHILD=42 $0 $1 "$2" 2>&1 | grep -v RANDR +} + +if test "$SCREENCHILD" = "42"; then + (xfwm4 || metacity) 2>&1 | grep -v XRandr | grep -v 'Fatal IO error' & + sleep 2; kill -0 $! || exit $? + if test "$1" = "midori"; then + echo Processing case $2 + CFG=/tmp/midori-scrn/$2 + PNG=$CFG.png + test -d $CFG && rm -R $CFG; mkdir -p $CFG + mkdir -p $CFG/midori + mkdir -p $CFG/gtk-3.0 + echo '[Settings]' > $CFG/gtk-3.0/settings.ini + test -n "$GTK_THEME" && echo "gtk-theme-name=$GTK_THEME" >> $CFG/gtk-3.0/settings.ini + test -n "$ICON_THEME" && echo "gtk-icon-theme-name=$ICON_THEME" >> $CFG/gtk-3.0/settings.ini + export XDG_CONFIG_HOME; XDG_CONFIG_HOME=$CFG + echo '[settings]' > $CFG/midori/config + echo 'last-window-state=MIDORI_WINDOW_MAXIMIZED' >> $CFG/midori/config + EXE="-e toolbar-style=MIDORI_TOOLBAR_ICONS" + URLS="http://.invalid about:version http://en.wikipedia.org/wiki/Cat" + if test "$2" = "1"; then + EXE="$EXE -e BookmarkAdd" + elif test "$2" = "2"; then + EXE="$EXE $URLS -e Panel -e libtab-panel.so=true" + echo 'last-panel-page=3' >> $CFG/config + elif test "$2" = "3"; then + EXE="$EXE -e Preferences" + elif test "$2" = "4"; then + EXE="$EXE -e ClearPrivateData" + elif test "$2" = "5"; then + EXE="$EXE -e Find" + elif test "$2" = "6"; then + EXE="$EXE -e ManageSearchEngines" + fi + _build/default/midori/midori $EXE 2>&1 \ + | grep -v 'Theme parsing error' \ + | grep -E -v '\[[0-9]{3}:[0-9]{3}\]' \ + | grep -v 'Fatal IO error' \ + | uniq & + elif test "$1" = "custom"; then + if test "$2" = ""; then + echo 'Argument required' + exit 1 + fi + PNG=/tmp/screenshot-custom.png + $2 & + else + echo Unknown scenario "$2" + exit 1 + fi + sleep 2; kill -0 $! || exit $? + sleep 14 + # test ! -f /tmp/Xvfb_screen0 && echo Xvfb produced no memory image && exit 1 + # convert /tmp/Xvfb_screen0 $PNG + WINDOW=$(xprop -root | grep --color=never '_NET_ACTIVE_WINDOW(WINDOW)' | sed 's@_NET_ACTIVE_WINDOW(WINDOW): window id # @@g') + import -frame -window "$WINDOW" $PNG || exit 1 + echo Screenshot $PNG saved + exit 0 +elif test "$1" = "midori"; then + for i in 1 2 3 4 5 6; do + xvfbonce $1 $i + done +elif test "$1" = "custom"; then + xvfbonce $1 "$2" +else + echo Usage: + echo " $0 midori" + echo " $0 custom 'commandline --with -a rguments'" +fi + _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits