| Summary: | KWin JS script callDBus invalid signature | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | pendo3247 |
| Component: | scripting | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED INTENTIONAL | ||
| Severity: | normal | CC: | kde, kdebugs |
| Priority: | NOR | ||
| Version First Reported In: | 5.24.2 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
pendo3247
2022-02-26 23:53:58 UTC
If you run:
qdbus org.kde.klauncher5 /KLauncher org.freedesktop.DBus.Introspectable.Introspect
you'll see
<method name="exec_blind">
<arg name="name" type="s" direction="in"/>
<arg name="arg_list" type="as" direction="in"/>
</method>
It wants a string then an array of strings
qdbus is a utility tool so provides a conversion from [] to an array of strings (which happens to be empty)
when writing code, we expect the types to be set. Your empty array by default is an array of values ("av" not "as" in the signature) despite being empty it's denied by the receiving app where it compares signatures.
----
As for a fix, klauncher is outdated anyway. If you really want to spawn dolphin use the filemanager1 interface, it's got far more control.
This already has been fixed for 4.10 (https://bugs.kde.org/show_bug.cgi?id=311896) the fix was lost in the migration process. ---- @David Edmundson what is your advice for running applications other than Explorer over the dbus? >This already has been fixed for 4.10 (https://bugs.kde.org/show_bug.cgi?id=311896) the fix was lost in the migration process.
That's not true. What was fixed was sending an array at all, we're seeing that happen.
I suspect if you run `new Array("someArg")` or maybe an empty string it'll work fine with the fix there.
In any case, writing good QML bindings for DBus are out of scope for Kwin. Ideally we need to import something more generic from somewhere else.
An alternative for you with the QML scripting is to import the plasmacore dataengines for executing arbitrary processes
|