startkde is a script that is provided by your distributions setup program. I guess that zipslack does not provide you with a startkde so you will probably have to build your own.
Here is a copy of mine to use a starting point:
#!/bin/sh
#
# SuSE KDE STARTUP SCRIPT
# based on
# DEFAULT KDE STARTUP SCRIPT ( KDE-3.1 )
#
# Boot sequence:
#
# kdeinit is used to fork off processes which improves memory usage
# and startup time.
#
# * kdeinit starts the dcopserver and klauncher first.
# * Then kded is started. kded is responsible for keeping the sycoca
# database up to date. When an up to date database is present it goes
# into the background and the startup continues.
# * Then kdeinit starts kcminit. kcminit performs initialisation of
# certain devices according to the user's settings
#
# * Then ksmserver is started which in turn starts
# 1) the window manager (kwin)
# 2) everything in $KDEDIR/share/autostart (kdesktop, kicker, etc.)
# 3) the rest of the session.
# When the X server dies we get a HUP signal from xinit. We must ignore it
# because we still need to do some cleanup.
trap 'echo GOT SIGHUP' HUP
# Set a left cursor instead of the standard X11 "X" cursor, since I've heard
# from some users that they're confused and don't know what to do. This is
# especially necessary on slow machines, where starting KDE takes one or two
# minutes until anything appears on the screen.
#
# Set the background to plain grey.
# The standard X background is nasty, causing moire effects and exploding
# people's heads. We use colours from the standard KDE palette for those with
# palettised displays.
#
# The user's personal KDE directory is usually $HOME/.kde3, but this setting
# may be overridden by setting KDEHOME.
#
unset QTDIR
unset KDEDIR
unset KDEDIRS
KDEMAINDIR=/opt/kde3/
[ "$KDEHOME" ] || export KDEHOME=$HOME/.kde
[ -z "$KDEROOTHOME" -a "$UID" == "0" ] && export KDEROOTHOME=$HOME/.kde
echo "$PATH" | grep -q "${KDEMAINDIR}bin" || export PATH=${KDEMAINDIR}bin:$PATH
#
# Is this the first KDE 3 start with that KDEHOME ?
#
if [ -e $HOME/.kde2 -a ! -e $HOME/.skel/kdebase3 ]; then
# [ "$USER" == "root" ] && xsetroot -cursor_name left_ptr -solid "#bd0000" \
# || xsetroot -cursor_name left_ptr -solid "#ACB29C"
$KDEMAINDIR/bin/updatedialog
S="$?"
if [ "$S" == "0" -o "$S" == "1" ]; then
if [ -e "$KDEHOME" -a ! -e "$HOME/.kde1" ]; then
mv "$KDEHOME" "$HOME/.kde1"
fi
rm -rf "$HOME/.kde"
if [ "$S" == "0" ]; then
mkdir -p "$HOME/.kde" "$HOME/Desktop/"
cd $HOME/.kde2/
tar cfp - --exclude=thumbnails --exclude=cache --exclude=socket-\* \
--exclude=tmp-\* * | tar xfv - -C "$KDEHOME"
for i in share/config/* ; do
sed -e 's,/opt/kde2/,/opt/kde3/,g' -e "s!$HOME/.kde2!$HOME/.kde!g" \
"$i" > "$HOME/.kde/$i"
done
sed -e 's,^Wallpaper=SuSE-Desktop_\(.*\).png,Wallpaper=SuSE-Desktop_\1.jpeg,' \
"share/config/kdesktoprc" > "$HOME/.kde/share/config/kdesktoprc"
cd -
[ "`du -ms $HOME/KDesktop/|awk '{ print $1 }'`" -lt 15 ] \
&& cp -a $HOME/KDesktop/* $HOME/Desktop/ \
|| mv $HOME/KDesktop/* $HOME/Desktop/
mkdir -p $HOME/.skel/
touch $HOME/.skel/kdebase3
fi
fi
fi
if [ -r /etc/sysconfig/windowmanager ]; then
# Do the user want the SuSE theme ?
source /etc/sysconfig/windowmanager
# Should we really enable FAM support for KDE ?
export USE_FAM="$KDE_USE_FAM"
# Should we use the fast malloc function from kdecore ?
case $KDE_USE_FAST_MALLOC in
yes|YES|1) KDE_MALLOC=1 ;;
esac
else
if [ -r /etc/rc.config ]; then
# Do the user want the SuSE theme ?
INSTALL_DESKTOP_EXTENSIONS=`bash -c "source /etc/rc.config && echo \\$INSTALL_DESKTOP_EXTENSIONS"`
# Should we really enable FAM support for KDE ?
USE_FAM=`bash -c "source /etc/rc.config && echo \\$KDE_USE_FAM"`
export USE_FAM
fi
# Should we use the fast malloc function from kdecore ?
KDE_USE_FAST_MALLOC=`bash -c "source /etc/rc.config && echo \\$KDE_USE_FAST_MALLOC"`
case $KDE_USE_FAST_MALLOC in
yes|YES|1) KDE_MALLOC=1 ;;
esac
fi
#
# use optimized libs, if your CPU has the needed support
# (kdemultimedia package has some SSE optimized libs)
[ -z "$LD_HWCAP_MASK" ] && export LD_HWCAP_MASK=0x20000000
#
# create SuSE defaults
#
if [ "$INSTALL_DESKTOP_EXTENSIONS" == "yes" ]; then
if [ "$USER" == "root" ]; then
if [ ! -e "$HOME/.skel/kdebase3" -a ! -e "$KDEHOME/share/config/kdeglobals" ]; then
if [ -e "/opt/kde3/bin/startkde.theme.unitedlinux" ]; then
. /opt/kde3/bin/startkde.theme.unitedlinux
copy_default_root_ul "$KDEHOME"
create_default_desktop_ul "$HOME/Desktop/"
fi
if [ -e "/opt/kde3/bin/startkde.theme" ]; then
. /opt/kde3/bin/startkde.theme
fi
copy_default_root "$KDEHOME"
mkdir -p $HOME/.skel/
touch $HOME/.skel/kdebase3
fi
else
if [ ! -e "$HOME/.skel/kdebase3" -a ! -e "$KDEHOME" ]; then
if [ -e "/opt/kde3/bin/startkde.theme.unitedlinux" ]; then
. /opt/kde3/bin/startkde.theme.unitedlinux
copy_default_user_ul "$KDEHOME"
create_default_desktop_ul "$HOME/Desktop/"
fi
if [ -e "/opt/kde3/bin/startkde.theme" ]; then
. /opt/kde3/bin/startkde.theme
fi
copy_default_user "$KDEHOME"
create_default_desktop "$HOME/Desktop/"
mkdir -p $HOME/.skel/
touch $HOME/.skel/kdebase3
fi
fi
for i in /opt/kde3/share/UnitedLinux/addon-scripts/*; do
[ -r "$i" ] && \
. "$i"
done
fi
#
# The user's personal KDE directory is usually $HOME/.kde3, but this setting
# may be overridden by setting KDEHOME.
#
#[ -e "$KDEHOME/share/config/kdesktoprc" ] && \
# color="`sed -n '/^Color1=/ s/Color1=//p' "$KDEHOME/share/config/kdesktoprc" | head -1 | awk -F \, '{ printf("#%02x%02x%02x",$1,$2,$3) }' -`"
#[ -z "$color" -a "$USER" == "root" ] && color="#bd0000"
#[ -z "$color" -a "$USER" != "root" ] && color="#ACB29C"
#xsetroot -cursor_name left_ptr -solid "$color"
xsetroot -cursor_name left_ptr
# Activate the kde font directories.
#
# There are 4 directories that may be used for supplying fonts for KDE.
#
# There are two system directories. These belong to the administrator.
# There are two user directories, where the user may add her own fonts.
#
# The 'override' versions are for fonts that should come first in the list,
# i.e. if you have a font in your 'override' directory, it will be used in
# preference to any other.
#
# The preference order looks like this:
# user override, system override, X, user, system
#
# Where X is the original font database that was set up before this script
# runs.
usr_odir=$kdehome/share/fonts/override
usr_fdir=$kdehome/share/fonts
sys_odir=$KDEMAINDIR/share/fonts/override
sys_fdir=$KDEMAINDIR/share/fonts
# We run mkfontdir on the user's font dirs (if we have permission) to pick
# up any new fonts they may have installed. If mkfontdir fails, we still
# add the user's dirs to the font path, as they might simply have been made
# read-only by the administrator, for whatever reason.
test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir")
test -d "$sys_odir" && xset +fp "$sys_odir"
test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir")
test -d "$sys_fdir" && xset fp+ "$sys_fdir"
#
# Add any user-installed font directories to the X font path
kde_fontsdir=$kdehome/share/fonts
kde_fontpaths=$kde_fontsdir/fontpaths
if test -r $kde_fontpaths ; then
for fpath in `cat $kde_fontpaths | grep -v '#'` ; do
if test -s $fpath/fonts.dir ; then
xset fp+ $fpath
fi
done
fi
# Ask X11 to rebuild its font list.
xset fp rehash
#
# Get Ghostscript to look into user's KDE fonts dir for additional Fontmap
if test -n "$GS_LIB" ; then
GS_LIB=$kde_fontsdir:$GS_LIB
export GS_LIB
else
GS_LIB=$kde_fontsdir
export GS_LIB
fi
#
# shutdown possible running dcopserver, which cause a login failure
# Link "tmp" and "socket" resource to directory in /tmp
# Creates a directory /tmp/kde-$USER and links $KDEHOME/tmp-$HOSTNAME to it.
dcopserver_shutdown
if [ -e "$KDEHOME/tmp-$HOSTNAME" -a ! -L "$KDEHOME/tmp-$HOSTNAME" ]; then
rm -rf "/tmp/ksocket-$USER" "/tmp/kde-$USER"
rm -rf "$KDEHOME/tmp-$HOSTNAME" "$KDEHOME/socket-$HOSTNAME"
lnusertemp tmp >/dev/null
lnusertemp socket >/dev/null
fi
# the splashscreen and progress indicator
ksplash
# We set LD_BIND_NOW to increase the efficiency of kdeinit.
# kdeinit unsets this variable before loading applications.
LD_BIND_NOW=true kdeinit +kcminit +knotify
if test $? -ne 0; then
# Startup error
echo 'startkde: Could not start kdeinit. Check your installation.' 1>&2
xmessage -geometry 500x100 "Could not start kdeinit. Check your installation."
fi
#
# do we have a configured provider ?
#
if [ ! -e /${KDEMAINDIR}/share/autostart/kinternet.desktop -a -x /${KDEMAINDIR}/bin/kinternet ]; then
/${KDEMAINDIR}/bin/kinternet --quiet --kicker &
fi
# if the KDEWM environment variable has been set, then it will be used as KDE's
# window manager instead of kwin.
# if KDEWM is not set, ksmserver will ensure kwin is started.
# kwrapper is used to reduce startup time and memory usage
# kwrapper does not return usefull error codes such as the exit code of ksmserver.
# We only check for 255 which means that the ksmserver process could not be
# started, any problems thereafter, e.g. ksmserver failing to initialize,
# will remain undetected.
test -n "$KDEWM" && KDEWM="--windowmanager $KDEWM"
kwrapper ksmserver $KDEWM
if test $? -eq 255; then
# Startup error
echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2
xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."
fi
echo 'startkde: Shutting down...' 1>&2
# Clean up
kdeinit_shutdown
dcopserver_shutdown
artsshell -q terminate
echo 'startkde: Running shutdown scripts...' 1>&2
# Run scripts found in $KDEDIRS/shutdown
for prefix in `kde-config --path exe| sed -e 's^bin/^shutdown/^g;s^:^ ^'`
do
for file in $prefix/*
do
if test -f $file
then
$file
fi
done
done
echo 'startkde: Done.' 1>&2
|