如何找到与DBus交互的信息?

问题描述 投票:0回答:1

例如,在互联网上搜索我发现以下命令可以让我在 KDE 中更改壁纸:

qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var allDesktops = desktops(); for (i = 0; i < allDesktops.length; i++) {d = allDesktops[i]; d.wallpaperPlugin = "org.kde.image";d.currentConfigGroup = Array("Wallpaper", "org.kde.image", "General"); d.writeConfig("Image", "file:///path/to/image.png")}'

好的,它可以工作,我也可以使用 dbus 模块在 python 中使用它,但是如果你无法通过 google 找到解决方案或者没有可用的文档,有什么方法可以找到服务名称、路径、方法和参数应该是什么会被利用吗?

我尝试过在 dbus-monitor 处于活动状态的情况下从 KDE 设置更改壁纸,但它没有显示任何有用的内容...只有 3 行,如下所示:

clover@Lacia:~$ dbus-monitor 
method call time=1690707792.535464 sender=:1.20 -> destination=org.freedesktop.DBus serial=2845 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/KPackage/Plasma/Wallpaper',interface='org.kde.plasma.kpackage',member='packageInstalled'"
dbus kde-plasma
1个回答
0
投票

可以使用

qdbusviewer
包中的
qt-tools
工具检查各种 API
例如,我可以单击
showText
方法来显示通知。
相同操作的 CLI 命令将是:

qdbus-qt5 org.kde.plasmashell /org/kde/osdService org.kde.osdService.showText null "TEST!"

您可以看到它与屏幕截图上的路径基本相同,其中

""
"TEST!"
showText
函数的参数。
此命令将显示一条带有“TEST!”的通知。消息(第一个参数是一个图标,在本例中为空)

在您使用

evaluateScript
的示例中,似乎使用了 Kwin 脚本 API

© www.soinside.com 2019 - 2024. All rights reserved.