krunner 1.0.2 copy "krunner: ^1.0.2" to clipboard
krunner: ^1.0.2 copied to clipboard

PlatformLinux

A user-friendly API for KDE's KRunner application. Provides a simple and reliable way to write krunner plugins, also known as "runners".

KRunner Dart #

A user-friendly API for KDE's KRunner application.

With KRunner Dart you can create plugins for KDE's KRunner application in an easy and sane way. The API is designed to be type safe, null safe, and easy to use.

Unlike the C++ or Python APIs, KRunner Dart provides code completion and documentation in tooltips for a better development experience.

Features #

Documentation in tooltips #

Documentation in tooltips

Code completion #

Code completion

Usage #

Creating plugins #

import 'package:krunner/krunner.dart';

Future<void> main() async {
  /// Create a runner instance.
  final runner = KRunnerPlugin(
    identifier: 'com.example.plugin_name',
    name: '/plugin_name',
    matchQuery: (String query) async {
      /// If the KRunner query matches exactly `hello` we return a match.
      if (query == 'hello') {
        return [
          QueryMatch(
            id: 'uniqueMatchId',
            title: 'This is presented to the user',
            icon: 'checkmark',
            rating: QueryMatchRating.exact,
            relevance: 1.0,
            properties: QueryMatchProperties(subtitle: 'Subtitle for match'),
          ),
        ];
      } else {
        return []; // Empty response (no matches).
      }
    },
    retrieveActions: () async => [
      SecondaryAction(
        id: 'uniqueActionId',
        text: 'hoverText',
        icon: 'addressbook-details',
      ),
    ],
    runAction: ({required String actionId, required String matchId}) async {
      if (actionId == 'uniqueActionId') {
        print('User clicked secondary action!');
      }
    },
  );

  /// Start the runner.
  await runner.init();
}

Refer to the example directory for a complete example, including instructions for debugging and installing plugins.

For a real-world example of a plugin made with this API see VSCode Runner.

Documentation #

In addition to the documentation available in IDE code completion and hover popups, the API Documentation is available online.

Support #

If you encounter any issues or have any questions, please file an issue on the GitHub repository.

License #

You are free to copy, modify, and distribute KRunner Dart with attribution under the terms of the BSD 3-Clause License. See the LICENSE file for details.

Contributing #

Contributions are welcome! Feel free to open an issue or a pull request on the GitHub repository.

2
likes
160
pub points
40%
popularity

Publisher

verified publishermerritt.codes

A user-friendly API for KDE's KRunner application. Provides a simple and reliable way to write krunner plugins, also known as "runners".

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

dbus

More

Packages that depend on krunner