Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #
- # This is just a sample implementation of a slightly less primitive
- # interface than xinit. It looks for user .xinitrc and .xserverrc
- # files, then system xinitrc and xserverrc files, else lets xinit choose
- # its default. The system xinitrc should probably do things like check
- # for .Xresources files and merge them in, start up a window manager,
- # and pop a clock and several xterms.
- #
- # Site administrators are STRONGLY urged to write nicer versions.
- #
- unset DBUS_SESSION_BUS_ADDRESS
- unset SESSION_MANAGER
- userclientrc=$HOME/.xinitrc
- sysclientrc=/etc/X11/xinit/xinitrc
- userserverrc=$HOME/.xserverrc
- sysserverrc=/etc/X11/xinit/xserverrc
- defaultclient=xterm
- defaultserver=/usr/bin/X
- defaultclientargs=""
- defaultserverargs=""
- defaultdisplay=":0"
- clientargs=""
- serverargs=""
- vtarg=""
- enable_xauth=1
- # Automatically determine an unused $DISPLAY
- d=0
- while true ; do
- [ -e /tmp/.X$d-lock ] || break
- d=$(($d + 1))
- done
- defaultdisplay=":$d"
- unset d
- whoseargs="client"
- while [ x"$1" != x ]; do
- case "$1" in
- # '' required to prevent cpp from treating "/*" as a C comment.
- /''*|\./''*)
- if [ "$whoseargs" = "client" ]; then
- if [ x"$client" = x ] && [ x"$clientargs" = x ]; then
- client="$1"
- else
- clientargs="$clientargs $1"
- fi
- else
- if [ x"$server" = x ] && [ x"$serverargs" = x ]; then
- server="$1"
- else
- serverargs="$serverargs $1"
- fi
- fi
- ;;
- --)
- whoseargs="server"
- ;;
- *)
- if [ "$whoseargs" = "client" ]; then
- clientargs="$clientargs $1"
- else
- # display must be the FIRST server argument
- if [ x"$serverargs" = x ] && \
- expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
- display="$1"
- else
- serverargs="$serverargs $1"
- fi
- fi
- ;;
- esac
- shift
- done
- # process client arguments
- if [ x"$client" = x ]; then
- client=$defaultclient
- # For compatibility reasons, only use startxrc if there were no client command line arguments
- if [ x"$clientargs" = x ]; then
- if [ -f "$userclientrc" ]; then
- client=$userclientrc
- elif [ -f "$sysclientrc" ]; then
- client=$sysclientrc
- fi
- fi
- fi
- # if no client arguments, use defaults
- if [ x"$clientargs" = x ]; then
- clientargs=$defaultclientargs
- fi
- # process server arguments
- if [ x"$server" = x ]; then
- server=$defaultserver
- # When starting the defaultserver start X on the current tty to avoid
- # the startx session being seen as inactive:
- # "https://bugzilla.redhat.com/show_bug.cgi?id=806491"
- tty=$(tty)
- if expr match "$tty" '^/dev/tty[0-9]\+$' > /dev/null; then
- tty_num=$(echo "$tty" | grep -oE '[0-9]+$')
- vtarg="vt$tty_num"
- fi
- # For compatibility reasons, only use xserverrc if there were no server command line arguments
- if [ x"$serverargs" = x -a x"$display" = x ]; then
- if [ -f "$userserverrc" ]; then
- server=$userserverrc
- elif [ -f "$sysserverrc" ]; then
- server=$sysserverrc
- fi
- fi
- fi
- # if no server arguments, use defaults
- if [ x"$serverargs" = x ]; then
- serverargs=$defaultserverargs
- fi
- # if no vt is specified add vtarg (which may be empty)
- have_vtarg="no"
- for i in $serverargs; do
- if expr match "$i" '^vt[0-9]\+$' > /dev/null; then
- have_vtarg="yes"
- fi
- done
- if [ "$have_vtarg" = "no" ]; then
- serverargs="$serverargs $vtarg"
- fi
- # if no display, use default
- if [ x"$display" = x ]; then
- display=$defaultdisplay
- fi
- #~ if [ x"$enable_xauth" = x1 ] ; then
- #~ if [ x"$XAUTHORITY" = x ]; then
- #~ XAUTHORITY=$HOME/.Xauthority
- #~ export XAUTHORITY
- #~ fi
- #~ removelist=
- #~ # set up default Xauth info for this machine
- #~ case `uname` in
- #~ Linux*)
- #~ if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
- #~ hostname=`hostname -f`
- #~ else
- #~ hostname=`hostname`
- #~ fi
- #~ ;;
- #~ *)
- #~ hostname=`hostname`
- #~ ;;
- #~ esac
- #~ authdisplay=${display:-:0}
- #~ mcookie=`/usr/bin/mcookie`
- #~ if test x"$mcookie" = x; then
- #~ echo "Couldn't create cookie"
- #~ exit 1
- #~ fi
- #~ dummy=0
- #~ # create a file with auth information for the server. ':0' is a dummy.
- #~ xserverauthfile=`mktemp -p /tmp serverauth.XXXXXXXXXX`
- #~ trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
- #~ xauth -q -f "$xserverauthfile" << EOF
- #~ add :$dummy . $mcookie
- #~ EOF
- #~ serverargs=${serverargs}" -auth "${xserverauthfile}
- #~ # now add the same credentials to the client authority file
- #~ # if '$displayname' already exists do not overwrite it as another
- #~ # server man need it. Add them to the '$xserverauthfile' instead.
- #~ for displayname in $authdisplay $hostname/unix$authdisplay; do
- #~ authcookie=`xauth list "$displayname" \
- #~ | sed -n "s/.*$hostname\/unix$authdisplay[[:space:]*].*[[:space:]*]//p"` 2>/dev/null;
- #~ if [ "z${authcookie}" = "z" ] ; then
- #~ xauth -q << EOF
- #~ add $displayname . $mcookie
- #~ EOF
- #~ removelist="$displayname $removelist"
- #~ else
- #~ dummy=$(($dummy+1));
- #~ xauth -q -f "$xserverauthfile" << EOF
- #~ add :$dummy . $authcookie
- #~ EOF
- #~ fi
- #~ done
- #~ fi
- #~ xinit "$client" $clientargs -- "$server" $display $serverargs
- echo "xinit debug output"
- echo "------------------"
- echo "client: $client"
- echo "clientargs: $clientargs"
- echo "--"
- echo "server: $server"
- echo "display: $display"
- echo "serverargs: $serverargs"
- #~ retval=$?
- #~ if [ x"$enable_xauth" = x1 ] ; then
- #~ if [ x"$removelist" != x ]; then
- #~ xauth remove $removelist
- #~ fi
- #~ if [ x"$xserverauthfile" != x ]; then
- #~ rm -f "$xserverauthfile"
- #~ fi
- #~ fi
- #~ if command -v deallocvt > /dev/null 2>&1; then
- #~ deallocvt
- #~ fi
- #~ exit $retval
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement