krunner 0.1.2 icon indicating copy to clipboard operation
krunner: ^0.1.2 copied to clipboard

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

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

Features #

  • Create KRunner plugins ("runners")
    • Type safe
    • Null safe
    • Named parameters
    • Documentation explaining the various parts

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.

Additional Information #

API Documentation

0
likes
130
pub points
23%
popularity

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