1#!/bin/bash 2trap "" TERM 3context=`id -Z | secon -t -l -P` 4export TITLE="Sandbox $context -- `grep ^#TITLE: ~/.sandboxrc | /usr/bin/cut -b8-80`" 5[ -z $1 ] && export WAYLAND_NATIVE="no" || export WAYLAND_NATIVE="$1" 6[ -z $2 ] && export SCREENSIZE="1000x700" || export SCREENSIZE="$2" 7[ -z $3 ] && export DPI="96" || export DPI="$3" 8trap "exit 0" HUP 9 10mkdir -p ~/.config/openbox 11cat > ~/.config/openbox/rc.xml << EOF 12<openbox_config xmlns="http://openbox.org/3.4/rc" 13 xmlns:xi="http://www.w3.org/2001/XInclude"> 14<applications> 15 <application class="*"> 16 <decor>no</decor> 17 <desktop>all</desktop> 18 <maximized>yes</maximized> 19 </application> 20</applications> 21</openbox_config> 22EOF 23 24if [ "$WAYLAND_NATIVE" == "no" ]; then 25 if [ -z "$WAYLAND_DISPLAY" ]; then 26 DISPLAY_COMMAND='/usr/bin/Xephyr -resizeable -title "$TITLE" -terminate -screen $SCREENSIZE -dpi $DPI -nolisten tcp -displayfd 5 5>&1 2>/dev/null' 27 else 28 DISPLAY_COMMAND='/usr/bin/Xwayland -terminate -dpi $DPI -retro -geometry $SCREENSIZE -decorate -displayfd 5 5>&1 2>/dev/null' 29 fi 30 eval $DISPLAY_COMMAND | while read D; do 31 export DISPLAY=:$D 32 cat > ~/seremote << __EOF 33#!/bin/bash -x 34export DISPLAY=$DISPLAY 35export WAYLAND_DISPLAY=$WAYLAND_DISPLAY 36"\$@" 37__EOF 38 chmod +x ~/seremote 39 /usr/share/sandbox/start $HOME/.sandboxrc 40 export EXITCODE=$? 41 kill -TERM 0 42 break 43 done 44else 45 /usr/share/sandbox/start $HOME/.sandboxrc 46fi 47exit 0 48