是否有一个 DBus 命令可以向 KDE 等离子面板添加程序启动按钮?

是否有一个 DBus 命令可以向 KDE 等离子面板添加程序启动按钮?

KDE3 中有一个很好的命令,允许我以编程方式将程序启动按钮添加到踢球面板:

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

我想知道 KDE4 是否有类似的东西?

答案1

我只能找到该问题的部分解决方案。以下脚本可完成 KDE3 单行脚本的工作,但不幸的是,它仍然需要用户交互,因为 Plasma 不支持在没有图形用户界面的情况下执行脚本。这非常令人失望。

如果你知道直接执行等离子脚本的方法,请回答这个问题

#!/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"

相关内容