#!/bin/csh -f # $Id: XStartup,v 1.11 2000-05-10 17:08:25+02 jv Exp jv $ cd ${HOME} set verbose set verify # X11Startup control file # # This is a C-Shell file, since it processes .cshrc for basic setup. # Slave files are processed by the 'normal' Bourne shell, as specified # in variable SH (not SHELL!). # # The window manager is started from this script, since it needs # environments and PATH if ( ! $?WM_START ) setenv WM_START 1 if ( ! $?WM_TOOLS ) setenv WM_TOOLS 0 set Start_dir = "$HOME/XStart" set SH = /bin/sh # We used to set path and PATH here, but that is no longer needed. # We trust .cshrc to set it. if ( -r ~/.cshrc ) source ~/.cshrc # if ( -r ~/.login ) source ~/.login # Hostnames and such. HOSTNAME is the short name, # DNSHOSTNAME is the fqdn, DNSDOMAINNAME its DNS domain. eval `hostname | sed -n -e 's/^\([^.]\{1,\}\)\.\(.*\)/setenv HOSTNAME \1;setenv DNSHOSTNAME \1.\2;setenv DNSDOMAIN \2/p'` # Load X properties. Turn -DWIDTH=1280 into "setenv X_WIDTH 1280" etc. eval `xrdb -symbols -screen | sed -ne 's/^-D\(HEIGHT\|WIDTH\|NUM_SCREENS\)=\(.*\)$/setenv X_\1 \2;/p'` if ( ! $?X_WIDTH ) then echo "ERROR: No properties from X, using defaults." setenv X_WIDTH 1024 setenv X_HEIGHT 864 endif # Display dependent actions. setenv XSTART ${Start_dir}/${DNSHOSTNAME}/${DISPLAY} if ( ! -d ${XSTART} ) mkdir -p ${XSTART} # Root background color. load_xdefaults uses it. # background LightSkyBlue3 = #8DB6CD setenv ROOT_BGCOLOR LightSkyBlue3 xsetroot -solid $ROOT_BGCOLOR # Xdefaults and Xmodmap. rm -f ${XSTART}/load_xdefaults cp ${Start_dir}/load_xdefaults ${XSTART}/load_xdefaults sh -x ${XSTART}/load_xdefaults # Set num lock. We need it. setleds +num xset r rate 300 50 # System dependent settings. switch ( "$HOSTNAME" ) case phoenix: xset m 4 # Nice beep xset b 100 2700 50 breaksw case deirdre: # slow mouse xset m 1 1 # Nice beep xset b 80 2000 40 # No screen saver xset s off xset -dpms breaksw case eithne: aumix -v30 # Used for presentions -> no blanking xset s 0 endsw # Bind keys. if ( -s ${HOME}/.xbindkeysrc-${HOSTNAME} ) then xbindkeys -f ${HOME}/.xbindkeysrc-${HOSTNAME} endif if ( $WM_TOOLS == 1 ) then # Remove remniscent wm selector files so the scripts can create one. rm -f ${XSTART}/wm # Startup files are real shell-scripts, organized in a separate # directory. ${XStart_dir} indicates this directory. # # Startup files are named XY-Name, where # # X - digit indicating the startup phase # Y - digit indicating precedence in this phase # Name - descriptive name # # For each phase (0..9) all files with precedence not greater than the # currently selected start level will be executed. # The start level is defined in .XStartLevel or XStartLevel. # .XStartLevel is a temporary start level, and removed after use. # XStartLevel is a permanent one, to be used if .XStartLevel is not # present. # Determine start level. set DotStartLevel_file = "$HOME/.XStartLevel" set StartLevel_file = "$HOME/XStartLevel" set StartLevel = 9 # CSH does not have -s, use test if ( { test -s ${DotStartLevel_file} } ) then set StartLevel = `cat ${DotStartLevel_file}` rm -f ${DotStartLevel_file} else if ( -f ${StartLevel_file} ) then if ( -z ${StartLevel_file} ) then set StartLevel = 0 # empty file, testing... else set StartLevel = `cat ${StartLevel_file}` endif endif endif echo "XStartLevel = ${StartLevel}" cd $HOME # Normally, start level is a number between 0 and 9, but it may be # something else (with slightly different semantics). switch ( "${StartLevel}" ) case [0-9]: set Pat = "0-${StartLevel}" breaksw default: set Pat = ${StartLevel} breaksw endsw # Select the scripts based on the start level pattern. foreach i ( ${Start_dir}/[0-9][${Pat}]-* ) switch ( $i:t ) case *~: breaksw case *,v: breaksw default: echo "XStart:" $i:t ${SH} $i breaksw endsw end endif # WM_TOOLS if ( $WM_START == 1 ) then cd $HOME exec sh /etc/X11/xinit/xinitrc endif # WM_START # Local Variables: # mode: shell-script # End: