I loved the idea of the OnDemand script, however the current version in TC works only for FLWM, which isn't much good for anyone using anything else..
This is a version I hacked together for those of us making use of the LXDE desktop environment.
#!/bin/sh
# (c) Robert Shingledecker 2009
# Edited by Justin Steward (Althalus) for compatibility with LXDE.
[ "$DESKTOP" == "lxde" ] || exit 1
[ -s /opt/.tce_dir ] || exit 1
TCEDIR="$(cat /opt/.tce_dir)"
TMP=/tmp/ondemand.$$.tmp
ls "$TCEDIR"/optional | grep -E .tcz[ml]*$ > "$TMP"
select "OnDemand Tool for LXDE" "$TMP"
EXTN="$(cat /tmp/select.ans)"
rm "$TMP"
[ "$EXTN" == "" ] && exit
APPNAME="${EXTN%%.*}"
TITLE="$APPNAME"
echo
echo -n "Title: $TITLE (to change enter): "; read ANS
if [ "$ANS" != "" ]; then
TITLE="$ANS"
echo "Title changed to: $TITLE"
fi
BINARY="$APPNAME"
echo
echo -n "Binary: $BINARY (to change enter or 'none'): "; read ANS
if [ "$ANS" != "" ]; then
BINARY="$ANS"
echo "Binary changed to: $BINARY"
fi
[ -d /home/"$USER"/.ondemand ] || mkdir -p /home/"$USER"/.ondemand
FILE=/home/"$USER"/.ondemand/"$TITLE"
echo '#!/bin/sh' > "$FILE"
echo '[ -e /opt/.tce_dir ] || exit 1' >> "$FILE"
echo 'read TCEDIR < /opt/.tce_dir' >> "$FILE"
echo '[ -e /usr/local/tce.installed/'"$APPNAME"' ] && exit 0' >> "$FILE"
echo 'tce-load -i "$TCEDIR"/optional/'"$EXTN" >> "$FILE"
if [ "$BINARY" != "none" ]; then
echo '[ $(which '"$BINARY"') ] && '"$BINARY" >> "$FILE"
fi
chmod +x "$FILE"
[ -d /home/${USER}/.local/share/applications ] || mkdir -p /home/${USER}/.local/share/applications
MENUENTRY="/home/${USER}/.local/share/applications/${BINARY}.desktop"
echo "[Desktop Entry]" > ${MENUENTRY}
echo "Name=${TITLE} OnDemand" >> ${MENUENTRY}
echo "Comment=${TITLE} OnDemand" >> ${MENUENTRY}
echo "Exec=${FILE}" >> ${MENUENTRY}
echo "Terminal=False" >> ${MENUENTRY}
echo "Type=Application" >> ${MENUENTRY}
echo "Categories=OnDemand;" >> ${MENUENTRY}
Currently, entries show up in "Other" - Creating a new directory doesn't seem as easy as creating an application entry in the menu - Maybe this could be included as part of the lxpanel extension?