Skip to content

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

LinuxmacOSWindows
✔️✔️✔️

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_managerurl: https://github.com/leanflutter/hotkey_manager.gitref: main

Linux requirements

Run the following command

sudo apt-get install keybinder-3.0

Usage

import'package:hotkey_manager/hotkey_manager.dart';
voidmain() 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.

// ⌥ + QHotKey _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

MethodDescriptionLinuxmacOSWindows
registerregister an system/inapp wide hotkey.✔️✔️✔️
unregisterunregister an system/inapp wide hotkey.✔️✔️✔️
unregisterAllunregister 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

Stars

152 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages