I'm grateful for the community support that keeps Key Promoter X alive. This project currently receives sponsorship of $4/month from m2ger, $2/month from JensAstrup, franklinharper, macalac, and $1/month from 0x1DOCD00D, objectx, j-walker23, carstenlex, r-k-b, sprak3000, goerge, and bishiboosh.
It also received a $5 one-time sponsorship from kuhmuh. Four additional sponsors support the project privately, and I deeply appreciate their generosity while fully respecting their choice to remain anonymous.
Key Promoter X is a plugin for IntelliJ-based IDEs such as IntelliJ IDEA, Android Studio, and CLion. It helps you learn essential keyboard shortcuts from the mouse actions you use while working. When you click a button in the IDE with the mouse, Key Promoter X shows the keyboard shortcut you could have used instead. This makes it easier to replace repetitive mouse actions with shortcuts and gradually move toward a faster, mouse-free workflow. Currently, it supports toolbar buttons, menu actions, tool windows, and actions inside those tool windows.
- non-intrusive shortcut notifications using the IDE's built-in message framework
- easy shortcut customization through links in the notification
- easy creation of shortcuts for buttons that do not have one yet
- a persistent list of missed shortcuts in an IDE tool window
- a list of suppressed tips for shortcuts you do not want to use
You can install the plugin from Settings | Plugins | Marketplace by searching for Key Promoter X.
When you click a button with the mouse, a notification shows the shortcut you could have used instead. If a button has
no shortcut and
you press it several times, the plugin can suggest creating one for that action.
When you click something with the mouse, the plugin tries to detect whether that click triggered an IntelliJ action. If
so,
and if it can identify the corresponding ActionID, it records the event. If the action already has a shortcut, the
plugin shows
the action name (for example, Open Settings) together with its keyboard shortcut.
Additionally, Key Promoter X records these mouse actions in its statistics tool window so you can see which actions you use most often and which shortcuts are worth learning first.
If the action does not yet have a shortcut but does have an ActionID, the plugin still records the click. Depending on
your settings
under Settings | Tools | Key Promoter X, it can suggest creating a shortcut after the same action has been invoked a
configurable
number of times.
Some mouse interactions cannot be inspected reliably, even when they trigger behavior in the IDE. In those cases, Key Promoter X cannot provide a shortcut hint. This can happen, for example, with certain buttons inside tool windows.
Key Promoter X includes a built-in tool window on the right side of the IDE that gives you access to your list of missed shortcuts and suppressed items.
Every mouse click associated with an action that has a shortcut is recorded in the statistics. The items are ordered by how often you missed each shortcut.
Some mouse actions may be ones you do not want to replace with a shortcut. In those cases, click Don't show again in the notification, and the suppressed shortcut will appear in the list below the statistics. You can reactivate a suppressed item by double-clicking it there.
The Key Promoter X tool window also lets you clear your statistics and start fresh. You can also snooze notifications until the next IDE restart, or enable them again sooner if you prefer.
Settings for the plugin can be found under Settings | Tools | Key Promoter X.
- Show only keyboard shortcuts prevents notifications for mouse shortcuts. One example is the Go to declaration action, which can also be invoked with a mouse gesture. Enabling this option ensures that only keyboard shortcuts are shown.
- Disable in presentation or distraction free mode turns off Key Promoter X when you are giving a presentation or explicitly do not want to be disturbed.
- Clicks before notification is shown controls how often Key Promoter X displays a notification when you click a button with the mouse that already has a keyboard shortcut. For example, with a setting of 2, every second click will show a notification.
- Number of invocations before suggesting to create controls how often a button without a shortcut needs to be clicked before you see a message suggesting that you create one for it.
This setting controls which buttons are allowed to show a tip. Note that the All Buttons checkbox will try to capture as many mouse clicks as possible, even if you are not pressing a real button. For example, it can show a tip when you hold Ctrl and click a Java method to jump to its declaration, which can also be done with Ctrl+B.
The plugin is written in Java using the IntelliJ Platform plugin framework. The codebase is relatively small and contains only a handful of well-documented classes, which makes it a good project for learning how IntelliJ plugins are implemented.
The code is hosted on GitHub and built with Gradle.
If you experience bugs or unusual behavior, please create an issue on the bug tracker.
The initial version was implemented by Dmitry Kashin, who later stopped maintaining the project.
athiele then took the time to fork the original code, fix issues, and provide a version that worked with newer IntelliJ releases before that effort was also discontinued.







