2.2.3 ΑΛΛΑ ΕΡΓΑΛΕΙΑ ΕΚΚΙΝΗΣΗΣ ΤΩΝ X WINDOWS
Σε αρκετές περιπτώσεις μπορεί σε ορισμένα συστήματα να χρησιμοποιούνται
κάποια άλλα προγράμματα της μορφής του x11start, δηλαδή shell scripts, για
την εκκίνηση των X Windows. Τα συναντάμε συνήθως με ονόματα όπως x11, xstart
ή startx και λειτουργούνε ως interfaces μεταξύ του χρήστη και των
προγραμμάτων που ξεκινούν τα X Windows, όπως το xinit. Συνήθως
χρησιμοποιούνται για την διευκόλυνση των αρχάριων χρηστών ή για περιπτώσεις
που για ξεκινήσουν τα X Windows σε κάποιο σύστημα απαιτούνται καποιες
ειδικές, "περίεργες", ρυθμίσεις ή παράμετροι.
Για παράδειγμα, ένα τέτοιο απλό πρόγραμμα - interface είναι το ακόλουθο :
#!/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, startup up a window manager,
# and pop a clock and serveral xterms.
userclientrc=$HOME/.xinitrc
userserverrc=$HOME/.xserverrc
sysclientrc=/usr/lib/X11/xinit/xinitrc
sysserverrc=/usr/lib/X11/xinit/xserverrc
clientargs=""
serverargs=""
if [ -f $userclientrc ]; then
clientargs=$userclientrc
else if [ -f $sysclientrc ]; then
clientargs=$sysclientrc
fi
fi
if [ -f $userserverrc ]; then
serverargs=$userserverrc
else if [ -f $sysserverrc ]; then
serverargs=$sysserverrc
fi
fi
whoseargs="client"
while [ "x$1" != "x" ]; do
case "$1" in
/''*|\.*) if [ "$whoseargs" = "client" ]; then
clientargs="$1"
else
serverargs="$1"
fi ;;
--) whoseargs="server" ;;
*) if [ "$whoseargs" = "client" ]; then
clientargs="$clientargs $1"
else
serverargs="$serverargs $1"
fi ;;
esac
shift
done
xinit $clientargs -- $serverargs
kbd_mode -a