#!/usr/bin/bash -login # ConfigureWDM # Copyright (C) 2006 Gilbert Ashley # Based on wdmReconfig Copyright (C) 1998 by Gene Czarcinski. # This software falls under the GNU Public License. Please read # the COPYING file for more information ################################################################# # get the system preferences source /etc/wdm.conf # Logo if [[ $SHOW_LOGO -eq 1 ]] ; then PIXMAP_FILE="$LOGO_IMAGE" PIXMAP_COMMENT="" else PIXMAP_COMMENT="! " fi # Background Image if [[ $SHOW_BACKGROUND -eq 1 ]] ; then BACKGROUND_COMMENT="" else BACKGROUND_COMMENT="! " fi if [[ $SHOW_ANIMATIONS -eq 1 ]] ; then ANIMATION_COMMENT="" ANIMATIONS="true" else ANIMATION_COMMENT="# " ANIMATIONS="false" fi # Console Activation [Xsetup_0] (use "# " for this one) if [[ $SHOW_XCONSOLE -eq 1 ]] ; then XCONSOLE_COMMENT="" else XCONSOLE_COMMENT="# " fi if [[ $PREFER_WM_XINITRC -eq 1 ]] ; then XINITRC="xinitrc." else XINITRC="" fi ! [[ $SECURITY_LEVEL ]] && SECURITY_LEVEL=3 if [[ $SECURITY_LEVEL -eq 1 ]] ; then USER_VERIFY=false ROOT_VERIFY=false elif [[ $SECURITY_LEVEL -eq 2 ]] ; then USER_VERIFY=true ROOT_VERIFY=false elif [[ $SECURITY_LEVEL -eq 3 ]] ; then USER_VERIFY=false ROOT_VERIFY=true else USER_VERIFY=false ROOT_VERIFY=true fi # Generate WMLIST save_ifs="$IFS" IFS=: path=$PATH:/etc/X11/xinit:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/opt/kde/bin WMLIST="" rc_word=${XINITRC}wmaker WMAKER_PATH="wmaker" for rc_dir in $path; do if test -x $rc_dir/$rc_word; then WMAKER_PATH=$rc_dir/$rc_word WMLIST=WindowMaker break fi done rc_word=${XINITRC}icewm ICEWM_PATH="icewm" for rc_dir in $path; do if test -x $rc_dir/$rc_word; then ICEWM_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:IceWM" break fi done if [[ $PREFER_WM_XINITRC = 1 ]] ; then rc_word=${XINITRC}fluxbox else rc_word=startfluxbox fi FLUXBOX_PATH=$rc_word for rc_dir in $path; do if test -x $rc_dir/$rc_word; then FLUXBOX_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:FluxBox" break fi done if [[ $PREFER_WM_XINITRC -eq 1 ]] ; then rc_word=${XINITRC}xfce else rc_word=startxfce4 fi XFCE_PATH=$rc_word for rc_dir in $path; do if test -x $rc_dir/$rc_word; then XFCE_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:XFCE" break fi done if [[ $PREFER_WM_XINITRC -eq 1 ]] ; then rc_word=${XINITRC}.kde else rc_word=startkde fi STARTKDE_PATH=$rc_word for rc_dir in $path; do if test -x $rc_dir/$rc_word; then STARTKDE_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:KDE" break fi done rc_word=${XINITRC}afterstep AFTERSTEP_PATH="afterstep" for rc_dir in $path; do if test -x $rc_dir/$rc_word; then AFTERSTEP_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:AfterStep" break fi done rc_word=${XINITRC}blackbox BLACKBOX_PATH="blackbox" for rc_dir in $path; do if test -x $rc_dir/$rc_word; then BLACKBOX_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:BlackBox" break fi done rc_word=xsession XSESSION_PATH="xsession" for rc_dir in $path; do if test -x $rc_dir/$rc_word; then XSESSION_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:xsession" break fi done if [[ $SHOW_GLOBAL_XINITRC -eq 1 ]] ; then rc_word=xinitrc XINITRC_PATH="xinitrc" for rc_dir in $path; do if test -x $rc_dir/$rc_word; then XINITRC_PATH=$rc_dir/$rc_word WMLIST="$WMLIST:Global-xinitrc" break fi done fi if [[ $SHOW_USER_XINITRC -eq 1 ]] ; then WMLIST="$WMLIST:User-xinitrc" fi # Reset WMLIST if WM_LIST was given. if [[ "$WM_LIST" != "" ]] ; then WMLIST="$WM_LIST" fi # update wdm-config configfile=/etc/X11/wdm/wdm-config rm -f $configfile sed \ -e "s:@DMDIR\@:/etc/X11/wdm:" \ -e "s:@BINDIR\@:@BINDIR@:" \ -e "s:@SHUTDOWN\@:/sbin/shutdown:" \ -e "s:@LOGDIR\@:/var/log:" \ -e "s:@RUNDIR\@:/var/run:" \ -e "s'@GFXDIR\@'$GFX_DIR'" \ -e "s'@PIXMAPFILE\@'$PIXMAP_FILE'" \ -e "s'@PIXMAPCOMMENT\@'$PIXMAP_COMMENT'" \ -e "s'@BACKGROUNDIMAGE\@'$BACKGROUND_IMAGE'" \ -e "s'@BACKGROUNDCOMMENT\@'$BACKGROUND_COMMENT'" \ -e "s'@SHUTDOWNCOMMAND\@'$SHUTDOWN_COMMAND'" \ -e "s'@REBOOTCOMMAND\@'$REBOOT_COMMAND'" \ -e "s'@USERVERIFY\@'$USER_VERIFY'" \ -e "s'@ROOTVERIFY\@'$ROOT_VERIFY'" \ -e "s'@ANIMATIONS\@'$ANIMATIONS'" \ -e "s:@exec_prefix\@:/usr:" \ -e "s/@WMLIST\@/$WMLIST/" \ $configfile.in \ > $configfile chmod 644 $configfile # update Xclients configfile=/etc/X11/wdm/Xclients rm -f $configfile sed -e "s:@XRDB_PATH\@:/usr/X11R6/bin/xrdb:" \ -e "s'@WMAKER_PATH\@'$WMAKER_PATH'" \ -e "s'@AFTERSTEP_PATH\@'$AFTERSTEP_PATH'" \ -e "s'@BLACKBOX_PATH\@'$BLACKBOX_PATH'" \ -e "s'@FLUXBOX_PATH\@'$FLUXBOX_PATH'" \ -e "s'@ICEWM_PATH\@'$ICEWM_PATH'" \ -e "s'@XFCE_PATH\@'$XFCE_PATH'" \ -e "s'@XINITRC_PATH\@'$XINITRC_PATH'" \ -e "s'@XSESSION_PATH\@'$XSESSION_PATH'" \ -e "s'@STARTKDE_PATH\@'$STARTKDE_PATH'" \ -e "s:@WINMGR_NAME\@::" \ -e "s:@WINMGR_PATH\@::" \ $configfile.in \ > $configfile chmod 755 $configfile # update Xsetup_0 configfile=/etc/X11/wdm/Xsetup_0 rm -f $configfile sed -e "s'@XCONSOLECOMMENT\@'$XCONSOLE_COMMENT'" \ -e "s'@ANIMATIONCOMMENT\@'$ANIMATION_COMMENT'" \ $configfile.in \ > $configfile chmod 755 $configfile