Flutter Global Shortcuts: Register Keyboard Shortcuts


A macOS plugin which can register a callback for a global keyboard shortcut.

As the shortcut is global, the callback will be triggered even when the app does not have focus.


  global_shortcuts: any


Register a callback for a given ShortcutKey and zero or more ShortcutModifier

Future<void> register() async {
  try {
    await GlobalShortcuts.register(
      key: ShortcutKey.r,
      modifiers: [ShortcutModifier.shift, ShortcutModifier.command],
      onKeyCombo: _onKeyCombo,
  } on Exception catch (_) {}

void _onKeyCombo() => print('Shortcut Pressed at ${DateTime.now()}');

Shortcut can be unregistered using

Future<void> unregister() async {
  try {
    await GlobalShortcuts.unregister();
  } on Exception catch (_) {}

Only one shortcut combo can be registered. If, for instance, CTRL+SPACE is registered after SHIFT+CMD+R, then the callback for SHIFT+CMD+R will no longer be invoked.


  • Presently the plugin only supports macOS. Windows support may be investigated, linux support is unlikely.
  • macOS plugin uses HotKey which does not seem to support all modifiers (i.e fn) while os global shortcuts like CMD+SPACE do not seem to be caught.
  • Due to 0.0.x versioning, package is presently experimental.


Spotted any problems? Please open an issue on GitHub! Would like to work on a windows or linux version? Fork the repo and submit a PR!

Download details:

Author: defuncart
Source: https://github.com/defuncart/global_shortcuts

License:  MIT license

#flutter #dart 

Flutter Global Shortcuts: Register Keyboard Shortcuts
1.55 GEEK