Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37845094
en ru br
Репозитории ALT
4.0: 7.3.0-alt1
3.0: 6.8.2-alt18
+updates:6.8.2-alt24
www.altlinux.org/Changes

Группа :: Система/X11
Пакет: xorg-x11

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

#!/bin/sh

# $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
#
# 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, startup up a window manager,
# and pop a clock and serveral xterms.
#
# $XFree86: xc/programs/xinit/startx.cpp,v 3.12 2001/11/30 20:57:48 dawes Exp $

userclientrc="$HOME/.xinitrc"
userserverrc="$HOME/.xserverrc"
sysclientrc=/etc/X11/xinit/xinitrc
sysserverrc=/etc/X11/xinit/xserverrc
defaultclientargs=""
defaultserverargs=""
clientargs=
serverargs=
display=

if [ -f $userclientrc ]; then
defaultclientargs=$userclientrc
elif [ -f $sysclientrc ]; then
defaultclientargs=$sysclientrc
fi

if [ -f $userserverrc ]; then
defaultserverargs=$userserverrc
elif [ -f $sysserverrc ]; then
defaultserverargs=$sysserverrc
fi

add_client_args()
{
if [ -z "$clientargs" ]; then
clientargs="$1"
else
clientargs="$clientargs $1"
fi
}

add_server_args()
{
if [ -z "$serverargs" ]; then
serverargs="$1"
else
serverargs="$serverargs $1"
fi
}

add_def_client_args()
{
if [ -z "$clientargs" ]; then
clientargs="$defaultclientargs $1"
else
clientargs="$clientargs $1"
fi
}

add_def_server_args()
{
if [ -z "$serverargs" ]; then
serverargs="$defaultserverargs $1"
else
serverargs="$serverargs $1"
fi
}

whoseargs=client

while [ -n "$1" ]; do
case "$1" in
/''*|\.*)
if [ "$whoseargs" = client ]; then
add_client_args "$1"
else
add_server_args "$1"
fi
;;
--)
whoseargs=server
;;
*)
if [ "$whoseargs" = client ]; then
add_def_client_args "$1"
else
if [ -z "$display" -a -z "${1##:*}" ]; then
display="$1"
fi
add_def_server_args "$1"
fi
;;
esac
shift
done

# process client arguments
if [ -z "$clientargs" ]; then
clientargs="$defaultclientargs"
fi

# process server arguments
if [ -z "$serverargs" ]; then
serverargs="$defaultserverargs"
fi

if [ -z "$XAUTHORITY" ]; then
export XAUTHORITY=$HOME/.Xauthority
fi

# select next free display if not specified
if [ -z "$display" ]; then
last_display=`find /tmp/ -maxdepth 1 -type f -name '.X*-lock' |
sed -ne 's,^/tmp/\.X\([[:digit:]]\+\)-lock$,\1,p' |
sort -n |
tail -1`
[ -z "$last_display" ] || display=":$((1+last_display))"
fi

# set up default Xauth info for this machine
removelist=
authdisplay=${display:-:0}
mcookie=`mcookie`
for displayname in "$authdisplay" "`hostname -f`$authdisplay"; do
if ! xauth list "$displayname" |fgrep -qs "$displayname "; then
xauth add "$displayname" . "$mcookie"
removelist="$displayname $removelist"
fi
done

cleanup()
{
[ -z "$xinit_pid" ] || kill "$xinit_pid"
}

trap cleanup EXIT

xinit $clientargs -- $serverargs $authdisplay &

xinit_pid=$!

wait "$xinit_pid"

xinit_pid=

if [ -n "$removelist" ]; then
xauth remove $removelist
fi

DEALLOCVT=/usr/bin/deallocvt
if [ -x "$DEALLOCVT" ]; then
"$DEALLOCVT"
fi
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin