Gibt es einen DBus-Befehl zum Hinzufügen einer Programmstarttaste zu einem KDE-Plasmabildschirm?

1

In KDE3 gab es einen schönen Befehl, der es mir erlaubte, programmgesteuert einem Kicker-Panel einen Programmstartknopf hinzuzufügen:

dcop kicker $PANEL addNonKDEAppButton "$PROGRAM_NAME" "$PROGRAM_DESCRIPTION" "$PROGRAM_EXECUTABLE" "$PROGRAM_ICON" "" 0

Ich frage mich, ob es etwas Ähnliches für KDE4 gibt?

Stefan Endrullis
quelle

Antworten:

0

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, antworten Sie bitte 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"
Stefan Endrullis
quelle