https://bugs.kde.org/show_bug.cgi?id=514000

            Bug ID: 514000
           Summary: KRunner Activities Plugin Does Not Show Results in
                    Normal Searches
    Classification: Plasma
           Product: krunner
      Version First 6.5.4
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected]
  Target Milestone: ---

# Summary
The Activities plugin in KRunner is enabled and favorited in Plasma Search
settings, but does not show any results when searching for activity names in
normal KRunner searches. The plugin works when invoked directly via DBus
`querySingleRunner`, but fails during normal searches due to missing DBus2 API
methods.

# Product/Component
- Product: **kactivitymanagerd** (or **plasma-workspace**)
- Component: **general** (or **krunner**)
- Version: **6.5.4**

# Steps to Reproduce
1. Create multiple activities in System Settings (e.g., "activity-a",
"activity-b", "work")
2. Open System Settings → Search → Plasma Search
3. Verify "Activities" plugin is enabled and favorited
4. Open KRunner (Alt+Space or Meta+Space)
5. Type an activity name (e.g., "work")

# Expected Results
KRunner should show "Switch to [activity name]" results, allowing the user to
switch activities.

# Actual Results
No activity-related results appear in KRunner. The plugin appears completely
non-functional in normal searches.

# Likely Root Cause
The Activities plugin is the **only** KRunner plugin using
`X-Plasma-API=DBus2`, while all working plugins use `X-Plasma-API=DBus`:

```bash
$ grep "X-Plasma-API" /usr/share/krunner/dbusplugins/*.desktop
/usr/share/krunner/dbusplugins/plasma-runnners-activities.desktop:X-Plasma-API=DBus2
/usr/share/krunner/dbusplugins/kwin-runner-windows.desktop:X-Plasma-API=DBus
/usr/share/krunner/dbusplugins/plasma-runner-baloosearch.desktop:X-Plasma-API=DBus
/usr/share/krunner/dbusplugins/plasma-runner-browserhistory.desktop:X-Plasma-API=DBus
/usr/share/krunner/dbusplugins/plasma-runner-browsertabs.desktop:X-Plasma-API=DBus
```

The DBus2 implementation is **missing required DBus methods** that KRunner
expects:

**Error messages from journalctl:**
```
kactivitymanagerd[1703]: QDBusConnection: couldn't handle call to Teardown, no
slot matched
kactivitymanagerd[1703]: Could not find slot Krunner1Adaptor::Teardown
kactivitymanagerd[1703]: QDBusConnection: couldn't handle call to
SetActivationToken, no slot matched
kactivitymanagerd[1703]: Could not find slot
Krunner1Adaptor::SetActivationToken
```

**Method comparison:**
- Working plugin (browsertabs, DBus API):
  ```bash
  $ qdbus6 org.kde.plasma.browser_integration /TabsRunner | grep -E
"Teardown|SetActivation"
  method void org.kde.krunner1.Teardown()
  ```

- Broken plugin (activities, DBus2 API):
  ```bash
  $ qdbus6 org.kde.runners.activities /runner | grep -E
"Teardown|SetActivation"
  (no output - methods missing)
  ```

KRunner appears to be calling lifecycle methods (`Teardown`,
`SetActivationToken`) on all runners. When these methods don't exist, the
plugin is skipped during normal searches.

# Why querySingleRunner Works
When calling the plugin directly via DBus, the lifecycle methods are bypassed:
```bash
$ qdbus6 org.kde.krunner /App org.kde.krunner.App.querySingleRunner
"org.kde.activities2" "some-activity"
```
This successfully returns all matching activities and allows switching, proving
the core functionality works.

# Workaround
Create a keybinding that calls:
```bash
qdbus6 org.kde.krunner /App org.kde.krunner.App.querySingleRunner
"org.kde.activities2" "<query>"
```

# System Information
- Operating System: Manjaro Linux
- KDE Plasma Version: 6.5.4
- KDE Frameworks Version: 6.20.0
- Qt Version: 6.10.1
- Kernel Version: 6.12.62-1-MANJARO
- Graphics Platform: Wayland (or X11)

**Package Versions:**
- plasma-workspace: 6.5.4-1
- kactivitymanagerd: 6.5.4-1
- krunner: 6.20.0-1
- plasma-activities: 6.5.4-1
- qt6-base: 6.10.1-1

# Configuration
File: `~/.config/krunnerrc`
```ini
[Plugins]
baloosearchEnabled=false
org.kde.activities2Enabled=true

[Plugins][Favorites]
plugins=org.kde.activities2,krunner_services,krunner_systemsettings,browsertabs,krunner_webshortcuts,unitconverter
```

# Additional Notes
- Note the typo in the plugin filename: `plasma-runnners-activities.desktop`
(three n's) - owned by kactivitymanagerd package
- The DBus service `org.kde.runners.activities` is running and responds
correctly to direct queries
- Activities are correctly listed via `qdbus6 org.kde.ActivityManager
/ActivityManager/Activities ListActivities`

# Proposed Fix
The DBus2 runner implementation needs to implement the missing `Teardown()` and
`SetActivationToken()` methods to match the DBus API contract that KRunner
expects.

# Related Bugs
- Bug 513761: KRunner fails to search/list Activities due to kactivitymanagerd
SQL syntax error (different issue, but related to activities in KRunner)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to