Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut).

License

Notifications You must be signed in to change notification settings

leanflutter/hotkey_manager

Repository files navigation

🚀 Ship Your App Faster: Try Fastforge - The simplest way to build, package and distribute your Flutter apps.

hotkey_manager

pub version

This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut).


English | 简体中文


Platform Support

Linux macOS Windows
✔️ ✔️ ✔️

Quick Start

Installation

Add this to your package's pubspec.yaml file:

dependencies:
 hotkey_manager: ^0.2.3

Or

dependencies:
 hotkey_manager:
 git:
 path: packages/hotkey_manager
 url: https://github.com/leanflutter/hotkey_manager.git
 ref: main

Linux requirements

Run the following command

sudo apt-get install keybinder-3.0

Usage

import 'package:hotkey_manager/hotkey_manager.dart';
void main() async {
 // Must add this line.
 WidgetsFlutterBinding.ensureInitialized();
 // For hot reload, `unregisterAll()` needs to be called.
 await hotKeyManager.unregisterAll();
 runApp(MyApp());
}

Register/Unregsiter a system/inapp wide hotkey.

// ⌥ + Q
HotKey _hotKey = HotKey(
 key: PhysicalKeyboardKey.keyQ,
 modifiers: [HotKeyModifier.alt],
 // Set hotkey scope (default is HotKeyScope.system)
 scope: HotKeyScope.inapp, // Set as inapp-wide hotkey.
);
await hotKeyManager.register(
 _hotKey,
 keyDownHandler: (hotKey) {
 print('onKeyDown+${hotKey.toJson()}');
 },
 // Only works on macOS.
 keyUpHandler: (hotKey){
 print('onKeyUp+${hotKey.toJson()}');
 } ,
);
await hotKeyManager.unregister(_hotKey);
await hotKeyManager.unregisterAll();

Use HotKeyRecorder widget to help you record a hotkey.

HotKeyRecorder(
 onHotKeyRecorded: (hotKey) {
 _hotKey = hotKey;
 setState(() {});
 },
),

Please see the example app of this plugin for a full example.

Who's using it?

  • Airclap - Send any file to any device. cross platform, ultra fast and easy to use.
  • AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.
  • Biyi (比译) - A convenient translation and dictionary app.

API

HotKeyManager

Method Description Linux macOS Windows
register register an system/inapp wide hotkey. ✔️ ✔️ ✔️
unregister unregister an system/inapp wide hotkey. ✔️ ✔️ ✔️
unregisterAll unregister all system/inapp wide hotkeys. ✔️ ✔️ ✔️

Related Links

License

MIT

About

This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut).

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Contributors 9

AltStyle によって変換されたページ (->オリジナル) /