Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- . /usr/libexec/Xorg_Wrap_Fns.sh
- ARGS=()
- euid1=`id -u`
- uid1=`id -u -r`
- USER1=`id -nu "$uid1"`
- GROUP1="`su -c 'id -gn' $USER1`"
- HOME1=`eval 'echo ~'"$USER1"`
- i=0
- for x in $@; do
- if [ ${#ARGS[@]} -gt 1 ]; then
- if [ "${ARGS[-1]}" = "-auth" ]; then
- XAUTH="$x" #See
- elif [ "${ARGS[-1]}" = "-f" ]; then
- XAUTHORITY="$x"
- fi
- fi
- case "$x" in
- --user-name=*) #remove all options
- #Consider allowing non root users to do this but work out
- #security percautions first.
- if [ $uid1 -eq 0 ]; then
- USER="${x#--user-name=}"
- fi ;;
- --config-env=*)
- CONFIG_ENV="${x#--config-env=}" ;;
- --merge-x-resources=*)
- MERGE_X_RESOURCES="${x#--merge-x-resources=}" ;;
- --merge-x-resources)
- MERGE_X_RESOURCES=1 ;;
- --xrand-setup=*)
- XRAND_SETUP="${x#--xrand-setup=}" ;;
- --set-x=*)
- SET_X="${x#--set-x=}" ;;
- --set-x)
- SET_X=1 ;;
- --xinit)
- XINIT=1 ;;
- --xinitrc=*)
- XINITRC_PATH="${x#--xinitrc=}" ;;
- --lauch-wm=*)
- LAUNCH_WM="${x#--lauch-wm=}" ;;
- --lauch-wm)
- LAUNCH_WM=1 ;;
- --maybe-start-desktop=*)
- MAYBE_START_DESTKOP="${x#--maybe-start-desktop=}" ;;
- --maybe-start-desktop)
- MAYBE_START_DESTKOP=1 ;;
- --xinit-misc=*)
- XINIT_MISC="${x#--xinit-misc=}" ;;
- --xinit-misc)
- XINIT_MISC=1 ;;
- vt*)
- VT=$x #"${x#vt}" ;;
- ARGS+=($x) ;;
- *) ARGS+=($x) ;;
- esac
- let "i++"
- done
- #Well set the defaults here (may change)
- #Maybe move these defaults to a config file.
- [ -z "$CONFIG_ENV" ] && CONFIG_ENV=1
- [ -z "$MERGE_X_RESOURCES" ] && MERGE_X_RESOURCES=1
- [ -z "$XRAND_SETUP" ] && XRAND_SETUP=1
- [ -z "$SET_X" ] && SET_X=1
- [ -z "$XINIT" ] && XINIT=0
- [ -z "$MAYBE_START_DESTKOP" ] && MAYBE_START_DESTKOP=0
- [ -z "$LAUNCH_WM" ] && LAUNCH_WM=1
- [ -z "$XINIT_MISC" ] && XINIT_MISC=1
- #rox ${ARGS[*]}
- if [ -z "$VT" ]; then #Alternativly we could use slim default which is vt07
- if [ `fgconsole` -gt 9 ]; then
- VT=`fgconsole`
- else
- VT=vt0`fgconsole`
- fi
- RGS+=($VT)
- fi
- #https://stackoverflow.com/questions/27669950/difference-between-euid-and-uid
- [ -z "$USER" ] && USER=USER1
- export $USER
- euid=`su $USER -c 'id -u -r'`
- uid=`su $USER -c 'id -u'`
- GROUP="`su -c 'id -gn' $USER`"
- HOME=`eval 'echo ~'"$USER"`
- Xorg &
- #case $USER in
- #tux) #Create special cases for when Xorg.wrap doesn't work
- # /usr/libexec/Xorg "${ARGS[@]}" &
- # #copy_xauth=1 #I'm not sure if we need to do this
- # #since slim has it's own xauth located at:
- # # /var/run/slim.auth
- # #See: https://wiki.archlinux.org/index.php/SLiM
- # ;;
- #*)
- # su $USER -c '/usr/libexec/Xorg.warap '"${ARGS[@]}" &
- # ;;
- #esac
- #/etc/rc.d/rc.vbox
- if [ "`users`" = "$USER $GROUP" ]; then
- XAUTH="/var/run/slim.auth"
- else
- XAUTH="/usr/bin/xauth"
- fi
- export XAUTH
- [ -z "$XAUTHORITY" ] && XAUTHORITY=/root/.Xauthority
- [ -e "$XAUTHORITY" ] && cp --remove-destination -f $XAUTHORITY $HOME/.Xauthority && chown $USER:$GROUP $HOME/.Xauthority && \
- export XAUTHORITY=$HOME/.Xauthority
- if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
- set +x
- if test -z "$XDG_RUNTIME_DIR" -o ! -S "$XDG_RUNTIME_DIR/bus" -o ! -O "$XDG_RUNTIME_DIR/bus"; then
- eval "$(dbus-launch --sh-syntax --exit-with-session)"
- fi
- set -x
- fi
- unset XDG_CONFIG_HOME
- unset XDG_DATA_HOME
- unset XDG_CACHE_HOME
- #The following is probably redundant:
- if [ $CONFIG_ENV -eq 1 ]; then
- config_xdg_env
- if [ $MERGE_X_RESOURCES -eq 1 ]; then
- merge_xorg_resources
- fi
- fi
- #if [ -e /tmp/videomode ];then #xvesa only: testing a video mode
- # video-wizard &
- #fi
- #[ -f /usr/local/bin/agenda_chk ] && agenda_chk &
- #0.9.8 sync selection-buffer and clipboard. only useful for older apps
- #such as rxvt that use the selection-buffer...
- [ -f /usr/bin/autocutsel ] && /usr/bin/autocutsel &
- #...disadvantage of this is it creates a little square bottom-right of screen
- if [ -f "/etc/rc.d/rc.vbox" ]; then
- if [ -x "/etc/rc.d/rc.vbox" ]; then
- /etc/rc.d/rc.vbox
- else
- sh /etc/rc.d/rc.vbox
- fi
- fi
- #vboxadd start #I presume this is already started.
- #VBoxClient --clipboard
- if [ $XRAND_SETUP -eq 1 ]; then
- do_xrand_setup
- fi
- if [ $SET_X -eq 1 ]; then
- set_x_items
- fi
- ##Well set the defaults here (may change)
- #[ -z "$CONFIG_ENV" ] && CONFIG_ENV=1
- #[ -z "$XRAND_SETUP" ] && XRAND_SETUP=1
- #[ -z "$SET_X" ] && SET_X=1
- start_desktop_if_no_autostart
- xinit_misc
- if [ -n "$XINITRC_PATH" ] || [ -n "$XINIT" ] && [ "$XINIT" -eq 1 ]; then
- [ -z "$XINITRC_PATH" ] && XINITRC_PATH=$HOME/.xinitrc
- if [ -x $XINITRC_PATH ]; then
- maybe_su_exec $USER -c "$XINITRC_PATH"
- else
- maybe_su_exec $USER -c "sh $XINITRC_PATH"
- fi
- elif [ $LAUNCH_WM -eq 1 ]; then
- launch_wm
- fi
Advertisement
Add Comment
Please, Sign In to add comment