summaryrefslogtreecommitdiff
path: root/x-ui.sh
diff options
context:
space:
mode:
authorJinkun Jang <jinkun.jang@samsung.com>2013-04-22 17:53:43 +0900
committerJinkun Jang <jinkun.jang@samsung.com>2013-04-22 17:53:43 +0900
commit75c6db32746edd0b3263b1d6fa33ede320517759 (patch)
treef875190c0a23789cf613d11df14b4963dfac1cbe /x-ui.sh
parent3a25a1f342f79f5e6b8c83ca009462a8804a7c45 (diff)
downloade17-75c6db32746edd0b3263b1d6fa33ede320517759.tar.gz
e17-75c6db32746edd0b3263b1d6fa33ede320517759.tar.bz2
e17-75c6db32746edd0b3263b1d6fa33ede320517759.zip
Tizen 2.1 release
Diffstat (limited to 'x-ui.sh')
-rwxr-xr-xx-ui.sh280
1 files changed, 280 insertions, 0 deletions
diff --git a/x-ui.sh b/x-ui.sh
new file mode 100755
index 0000000..5b9d4e7
--- /dev/null
+++ b/x-ui.sh
@@ -0,0 +1,280 @@
+#!/usr/bin/env bash
+
+DPI=${DPI:-142}
+SCREEN=${SCREEN:-640x480}
+PROFILE=${PROFILE:-standard}
+VERBOSE=${VERBOSE:-0}
+VALGRIND=${VALGRIND}
+VALGRIND_LOG_FILE=${VALGRIND_LOG_FILE}
+MASSIF=${MASSIF}
+CALLGRIND=${CALLGRIND}
+HOST_CURSOR=${HOST_CURSOR}
+TEST_HOME=${TEST_HOME}
+
+xinerama_auto_modes()
+{
+ local x y screen_res screen_res_x screen_res_y div_x div_y single_res single_res_x single_res_y walker_x walker_y
+
+ div_x="${1%x*}"
+ div_y="${1#*x}"
+
+
+ # get your display resolution
+ screen_res="$( xdpyinfo | grep dimensions | awk '{print $2}' )"
+ screen_res_x="${screen_res%x*}"
+ screen_res_y="${screen_res#*x}"
+
+ # add some offset for your window-borders
+ screen_res_x="$(( ${screen_res_x} - 20 ))"
+ screen_res_y="$(( ${screen_res_y} - 40 ))"
+
+ # set size for xephir
+ SCREEN="${screen_res_x}x${screen_res_y}"
+
+
+ # which size per screen ?
+ single_res_x="$(( ${screen_res_x} / ${div_x} ))"
+ single_res_y="$(( ${screen_res_y} / ${div_y} ))"
+ single_res="${single_res_x}x${single_res_y}"
+
+
+ walker_x=0
+ walker_y=0
+
+
+ for (( y=0 ; $y < ${div_y} ; y++ )) ; do
+ for (( x=0 ; $x < ${div_x} ; x++ )) ; do
+ # add a new horizontal xinerama screen
+ xinerama_auto_args="${xinerama_auto_args} -fake-xinerama-screen ${single_res}+${walker_x}+${walker_y}"
+ walker_x="$(( ${walker_x} + ${single_res_x} ))"
+ done
+ # previous loop finished, set horizontal back to 0
+ walker_x=0
+ # add a new vertical xinerama screen
+ walker_y="$(( ${walker_y} + ${single_res_y} ))"
+ done
+
+ #echo "${xinerama_auto_args}"
+}
+
+show_help()
+{
+ cat <<HELP_EOF
+Usage:
+
+ $0 [options]
+
+where options are:
+
+ -c, --host-cursor Uses host-cursor, otherwise uses Xephyr's.
+ -d, --dpi=NUMBER states the dots-per-inch to be used.
+ -s, --screen=SPEC WIDTHxHEIGHT[xDEPTH] to be used.
+ -x, --fxs=WxH+X+Y Fake xinerama screen resolution
+ (can be applied repeatedly)
+ -ax 2x3 Automatic set of fake xineramas, 2 horizontal
+ screens per 3 of vertical ones
+ -p, --profile=NAME Enlightenment profile name.
+ -e, --empty-home[=PATH] Run with \$HOME being a new, empty directory at /tmp
+
+
+Debugger options:
+
+ --valgrind=MODE Run under valgrind to check for memory problems.
+ Same value as enlightenment_start, mode is "OR" of:
+ 1 = plain valgrind to catch crashes (default)
+ 2 = trace children (thumbnailer, efm slaves, ...)
+ 4 = check leak
+ 8 = show reachable after processes finish.
+ all = all of above
+ --valgrind-log-file=FILENAME
+ Save valgrind log to file, see valgrind's
+ --log-file for details.
+ --massif Run under massif valgrind tool.
+ --callgrind Run under callgrind valgrind tool.
+
+
+Misc options:
+ -v, --verbose Be verbose about what is being done.
+ -h, --help Show this help.
+
+
+Useful or common options:
+
+ --dpi=142 --screen=240x320x16
+ --dpi=142 --screen=320x240x16
+ --dpi=186 --screen=272x480x16
+ --dpi=186 --screen=480x272x16
+ --dpi=181 --screen=320x320x16
+ --dpi=183 --screen=320x480x16 --host-cursor
+ --dpi=183 --screen=480x320x16 --host-cursor
+ --dpi=183 --screen=480x800x16
+ --dpi=183 --screen=800x480x16
+ --dpi=284 --screen=480x640x16
+ --dpi=284 --screen=640x480x16 --host-cursor
+ --dpi=183 --screen=960x400x16 --host-cursor
+ --dpi=284 --screen=480x800 --host-cursor
+ --dpi=284 --screen=480x640
+ --dpi=284 --screen=640x480
+ --dpi=181 --screen=320x320
+ --dpi=186 --screen=272x480
+ --dpi=142 --screen=240x320
+ --dpi=142 --screen=240x240 --host-cursor
+
+HELP_EOF
+}
+
+while [ $# -gt 0 ]; do
+ arg=$1
+ shift
+ option=`echo "'$arg'" | cut -d'=' -f1 | tr -d "'"`
+ value=`echo "'$arg'" | cut -d'=' -f2- | tr -d "'"`
+ if [ x"$value" = x"$option" ]; then
+ value=""
+ fi
+
+ case $option in
+ -h|-help|--help)
+ show_help
+ exit 0
+ ;;
+ -v|-verbose|--verbose)
+ VERBOSE=1
+ ;;
+ -e|-empty-home|--empty-home)
+ if [ -z "$value" ]; then
+ TEST_HOME="/tmp/e-test-${USER:-$UID}"
+ else
+ TEST_HOME="$value"
+ fi
+ ;;
+ -d|-dpi|--dpi)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ DPI=$value
+ ;;
+ -s|-screen|--screen)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ SCREEN=$value
+ ;;
+ -x|-fxs|--fxs)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ FAKE_XINERAMA_SCREEN="$FAKE_XINERAMA_SCREEN $value"
+ ;;
+ -p|-profile|--profile)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ PROFILE=$value
+ ;;
+ -c|-host-cursor|--host-cursor)
+ HOST_CURSOR="-host-cursor"
+ ;;
+ -valgrind|--valgrind)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ VALGRIND=$value
+ ;;
+ -valgrind-log-file|--valgrind-log-file)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ VALGRIND_LOG_FILE=$value
+ ;;
+ -massif|--massif)
+ MASSIF="1"
+ ;;
+ -callgrind|--callgrind)
+ CALLGRIND="1"
+ ;;
+ -ax|-auto-xinerama|--auto-xinerama)
+ if [ -z "$value" ]; then
+ value=$1
+ shift
+ fi
+ xinerama_auto_modes $value
+ ;;
+ *)
+ echo "Unknown option: $option" 1>&2
+ ;;
+ esac
+done
+
+debuggers=0
+
+if [ ! -z "$MASSIF" ]; then
+ DEBUGGER="-massif"
+ ((debuggers++))
+fi
+
+if [ ! -z "$CALLGRIND" ]; then
+ DEBUGGER="-callgrind"
+ ((debuggers++))
+fi
+
+if [ ! -z "$VALGRIND" ]; then
+ DEBUGGER="-valgrind=$VALGRIND"
+ ((debuggers++))
+fi
+
+if [ $debuggers -gt 1 ]; then
+ echo "WARNING: more than one debugger specified. Using $DEBUGGER" 1>&2
+fi
+
+if [ ! -z "$FAKE_XINERAMA_SCREEN" ]; then
+ for fxsm in $FAKE_XINERAMA_SCREEN; do
+ E_OPTIONS="$E_OPTIONS -fake-xinerama-screen $fxsm"
+ done
+fi
+
+if [ ! -z "$TEST_HOME" ]; then
+ if [ "${TEST_HOME#/tmp/}" != "$TEST_HOME" ]; then
+ # just delete if inside /tmp
+ rm -fr "$TEST_HOME/"
+ fi
+ mkdir -p "$TEST_HOME"
+fi
+
+unset E_RESTART E_START E_IPC_SOCKET E_START_TIME E_CONF_PROFILE E_PREFIX
+
+if [ $VERBOSE -ne 0 ]; then
+ cat <<EOF
+Using:
+
+ DPI=$DPI
+ SCREEN=$SCREEN
+ FAKE_XINERAMA_SCREEN=$FAKE_XINERAMA_SCREEN
+ PROFILE=$PROFILE
+ HOST_CURSOR=$HOST_CURSOR
+ DEBUGGER=$DEBUGGER
+ VALGRIND=$VALGRIND
+ VALGRIND_LOG_FILE=$VALGRIND_LOG_FILE
+ MASSIF=$MASSIF
+ CALLGRIND=$CALLGRIND
+ TEST_HOME=$TEST_HOME
+EOF
+ set -x
+fi
+
+Xephyr :1 -nolisten tcp -noreset -ac -br -dpi $DPI -screen $SCREEN $HOST_CURSOR &
+
+sleep 1
+export DISPLAY=:1
+[ ! -z "$TEST_HOME" ] && export HOME="$TEST_HOME"
+enlightenment_start \
+ -no-precache \
+ -i-really-know-what-i-am-doing-and-accept-full-responsibility-for-it \
+ -profile $PROFILE \
+ $E_OPTIONS $xinerama_auto_args \
+ $DEBUGGER