Ich konnte nur eine Teillösung für das Problem finden. Das folgende Skript erledigt den KDE3-Einzeiler, erfordert aber leider immer noch eine Benutzerinteraktion, da Plasma keine Skriptausführung ohne grafische Benutzeroberfläche unterstützt. Das ist sehr enttäuschend.
Wenn Sie wissen, wie Sie Plasmaskripts direkt ausführen können, beantworten Sie diese Frage .
#!/bin/bash E_BADARGS=65 PLASMA_SCRIPT_FILE=/tmp/kdePlasmaScript.js DESKTOP_FILE="$1" PROGRAM_NAME="$2" PROGRAM_DESCRIPTION="$3" PROGRAM_EXECUTABLE="$4" PROGRAM_ICON="$5" if [ $# -ne 5 ]; then echo "Usage: `basename $0` <DESKTOP_FILE> <PROGRAM_NAME> <PROGRAM_DESCRIPTION> <PROGRAM_EXECUTABLE> <PROGRAM_ICON>" exit $E_BADARGS fi echo "[Desktop Entry] Name=$PROGRAM_NAME GenericName=$PROGRAM_DESCRIPTION Exec=$PROGRAM_EXECUTABLE Icon=$PROGRAM_ICON Path= Type=Application " >"$DESKTOP_FILE" echo "function addStartButton(quicklaunch, panel) { quicklaunch.writeConfig('launchers', quicklaunch.readConfig('launchers', '') + ',$DESKTOP_FILE') } var template = loadTemplate('org.kde.plasma-desktop.findWidgets') template.findWidgets('quicklaunch', addStartButton) " >"$PLASMA_SCRIPT_FILE" qdbus org.kde.plasma-desktop /MainApplication loadScriptInInteractiveConsole "$PLASMA_SCRIPT_FILE"