#!/bin/sh if [ `id -u` -eq 0 ]; then CONFDIR=/opt/kde/share/config else CONFDIR=~/.kde4/share/config fi XDG_APPS_DIR=/usr/share/applications FAVORITES=`/opt/kde/bin/kreadconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs 2>/dev/null` function usage() { echo "KDE4 kickoff configuration tool" echo echo "Usage:" echo " kickoffcfg {--add-favorite|--del-favorite} /path/to/desktopfile.desktop" echo " kickoffcfg --update-favorite /path/to/old/desktopfile.desktop /path/to/new/desktopfile.desktop" echo " kickoffcfg --autoupdate-favorites" echo echo "Current favorites:" echo $FAVORITES exit 1 } [ "$1" ] || usage if [ "$1" = "--add-favorite" ]; then [ "$2" ] || usage # ADD echo "$FAVORITES" | grep $2 >/dev/null || { if [ "$FAVORITES" ]; then FAVORITES="$FAVORITES,$2" else FAVORITES="$2" fi /opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs $FAVORITES } elif [ "$1" = "--del-favorite" ]; then [ "$2" ] || usage # DELETE MODFAVORITES=`echo "$FAVORITES" | sed "s|$2||;s|^,||;s|,,|,|"` if [ ! "$MODFAVORITES" ]; then /opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs '' elif [ "$FAVORITES" != "$MODFAVORITES" ]; then /opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs $MODFAVORITES fi elif [ "$1" = "--update-favorite" ]; then [ "$2" -a "$3" ] || usage # UPDATE MODFAVORITES=`echo "$FAVORITES" | sed "s|$2|$3|"` /opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs $MODFAVORITES elif [ "$1" = "--autoupdate-favorites" ]; then SAVEIFS=$IFS IFS="," for f in $FAVORITES; do if [ "$f" = "$XDG_APPS_DIR/chromium-devel.desktop" ]; then kickoffcfg --update-favorite $f $XDG_APPS_DIR/chromium.desktop fi if [ ! -e "$f" ]; then DIRNAME=`dirname $f` BASENAME=`basename $f` BASENAME_LC=`echo $BASENAME | tr '[:upper:]' '[:lower:]'` if [ -e $XDG_APPS_DIR/$BASENAME ]; then echo "kickoffcfg: migrating $f to $XDG_APPS_DIR/$BASENAME" kickoffcfg --update-favorite $f $XDG_APPS_DIR/$BASENAME elif [ -e $XDG_APPS_DIR/org.kde.$BASENAME ]; then echo "kickoffcfg: migrating $f to $XDG_APPS_DIR/org.kde.$BASENAME" kickoffcfg --update-favorite $f $XDG_APPS_DIR/org.kde.$BASENAME elif [ -e $XDG_APPS_DIR/org.kde.$BASENAME_LC ]; then echo "kickoffcfg: migrating $f to $XDG_APPS_DIR/org.kde.$BASENAME_LC" kickoffcfg --update-favorite $f $XDG_APPS_DIR/org.kde.$BASENAME_LC else echo "WARNING: favorite link $f does not exist; ignoring." fi fi done IFS=$SAVEIFS else echo "Invalid option $1; aborting." echo usage fi exit 0