Time Limited Offer

50% off Flutter in Production

Spring Sale ends May 8th

View Offer

Hotkeys with CallbackShortcuts

Did you know?

The CallbackShortcuts widget makes it easy to add keyboard shortcuts to your Flutter app.

To use it:

  1. Add one or more key bindings using SingleActivator
  2. Add a Focus widget to capture the desired events
  3. Use callbacks to perform your desired actions
Hotkeys with CallbackShortcuts

Example Code

// * If another widget captures the focus (e.g. a text field), call // * hotkeysFocusNode.requestFocus() in the onEditingComplete callback. static final hotkeysFocusNode = FocusNode(); // in the build method: return CallbackShortcuts( bindings: { const SingleActivator(LogicalKeyboardKey.arrowLeft): () { onPrevious(); }, const SingleActivator(LogicalKeyboardKey.arrowRight): () { onNext(); }, }, child: Focus( focusNode: hotkeysFocusNode, autofocus: true, descendantsAreFocusable: false, descendantsAreTraversable: false, child: Row( children: [ IconButton( tooltip: 'Hotkey: ⬅️', icon: const Icon(Icons.arrow_back), onPressed: onPrevious, ), IconButton( tooltip: 'Hotkey: ➡️', icon: const Icon(Icons.arrow_forward), onPressed: onNext, ), ], ), ), );

Note: the activators will only be triggered when there's a focused child widget.

The easiest way to do this is to wrap your child widget in a Focus widget with autofocus: true.

If other widgets also rely on active focus, you can explicitly request focus with a FocusNode.


For more details about CallbackShortcuts, check this video:


To dive deeper and learn what to do when things don't work as you expect, watch this three-part series. 👇


If you want to see this technique in action, check my Flutter Tips app (web version):

This supports three different keyboard shortcuts:

  • Left arrow: go to the previous tip
  • Space: favorite/unfavorite a tip
  • Right arrow: go to the next tip

Happy coding!

Want More?

Invest in yourself with my high-quality Flutter courses.

Flutter In Production

Flutter In Production

Learn about flavors, environments, error monitoring, analytics, release management, CI/CD, and finally ship your Flutter apps to the stores. 🚀

Flutter Foundations Course

Flutter Foundations Course

Learn about State Management, App Architecture, Navigation, Testing, and much more by building a Flutter eCommerce app on iOS, Android, and web.

Flutter & Firebase Masterclass

Flutter & Firebase Masterclass

Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

The Complete Dart Developer Guide

The Complete Dart Developer Guide

Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Last updated to Dart 2.15.

Flutter Animations Masterclass

Flutter Animations Masterclass

Master Flutter animations and build a completely custom habit tracking application.