đ Ship Your App Faster: Try Fastforge - The simplest way to build, package and distribute your Flutter apps.
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. | âī¸ | âī¸ | âī¸ |