{"id":13781686,"url":"https://github.com/halirutan/IntelliJ-Key-Promoter-X","last_synced_at":"2025-05-11T15:31:57.894Z","repository":{"id":38434093,"uuid":"98691746","full_name":"halirutan/IntelliJ-Key-Promoter-X","owner":"halirutan","description":"Modern IntelliJ plugin to learn shortcuts for buttons","archived":false,"fork":false,"pushed_at":"2024-11-18T20:23:26.000Z","size":1853,"stargazers_count":3073,"open_issues_count":16,"forks_count":77,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-04-10T16:47:24.096Z","etag":null,"topics":["intellij","intellij-plugin","keyboard-shortcut","learn-shortcuts","mouse","shortcut"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/halirutan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"halirutan"}},"created_at":"2017-07-28T22:09:25.000Z","updated_at":"2025-04-07T14:24:22.000Z","dependencies_parsed_at":"2023-02-12T14:03:05.172Z","dependency_job_id":"2d588330-70cf-4668-bd0d-6cd7b88b9f77","html_url":"https://github.com/halirutan/IntelliJ-Key-Promoter-X","commit_stats":{"total_commits":239,"total_committers":11,"mean_commits":"21.727272727272727","dds":"0.16317991631799167","last_synced_commit":"e55ad098550bb511b34534240628c5941bb8ce92"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halirutan%2FIntelliJ-Key-Promoter-X","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halirutan%2FIntelliJ-Key-Promoter-X/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halirutan%2FIntelliJ-Key-Promoter-X/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halirutan%2FIntelliJ-Key-Promoter-X/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halirutan","download_url":"https://codeload.github.com/halirutan/IntelliJ-Key-Promoter-X/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253588582,"owners_count":21932281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["intellij","intellij-plugin","keyboard-shortcut","learn-shortcuts","mouse","shortcut"],"created_at":"2024-08-03T18:01:28.219Z","updated_at":"2025-05-11T15:31:57.341Z","avatar_url":"https://github.com/halirutan.png","language":"Java","funding_links":["https://github.com/sponsors/halirutan"],"categories":["Java","【详情】"],"sub_categories":[],"readme":"![Downloads Badge](https://img.shields.io/jetbrains/plugin/d/9792-key-promoter-x.svg)\n[![Build Status](https://github.com/halirutan/IntelliJ-Key-Promoter-X/actions/workflows/build.yml/badge.svg)](https://github.com/halirutan/IntelliJ-Key-Promoter-X/actions/workflows/build.yml)\n[![Slack](https://img.shields.io/badge/Slack-%23plugin--keypromoter--x-blue)](https://plugins.jetbrains.com/slack)\n[![Banner](doc/img/kpxBanner.png)](https://github.com/sponsors/halirutan)\n\n---\n\nI'm grateful this project is currently receives sponsorship of \\$4/month from\n[Indrek Toom](https://github.com/m2ger),\n\\$2/month from\n[Mac Adamarczuk](https://github.com/macalac),\n[Frank Harper](https://github.com/franklinharper),\n[PCoetzeeDev](https://github.com/PCoetzeeDev),\n[baffler](https://github.com/baffler)\nand \\$1/month from [13 other people](https://github.com/sponsors/halirutan).\n\n- [Become a GitHub Sponsor and support the Key Promoter X development](https://github.com/sponsors/halirutan)\n\n---\n\nThe Key Promoter X is a plugin for IntelliJ-based products like IDEA, Android Studio, or CLion, and it helps to learn\nessential keyboard shortcuts from mouse actions while you are working.\nWhen you use the mouse on a button inside the IDE, the Key Promoter X shows you the keyboard shortcut that you should\nhave used instead. This provides an easy way to learn how\nto replace tedious mouse work with keyboard keys and helps to transition to a faster, mouse free development.\nCurrently, it supports toolbar buttons, menu buttons, tool windows and the actions therein.\n\n![Teaser](http://i.imgur.com/2zBdMT8.gif)\n\n## ![Docs][doc-image] Features and Documentation\n\n### Features\n\n- non-intrusive notifications about shortcuts using IDEA's built-in message framework\n- easy shortcut customization for buttons by active links in the notification\n- easy creation of shortcuts for buttons that don't have one\n- a persistent hit-list of missed shortcuts as IDEA tool-window\n- list of suppressed tips for certain shortcuts you don't want to use\n\n## Installation\n\nThe plugin can be installed with **Settings | Plugins | Market Place** and searching for Key Promoter X. When a button is\nclicked with the mouse, a notification pops up that shows the shortcut which can be used instead. If a button has no shortcut and\nis pressed several times, a notification is shown that lets you easily create a shortcut for this action.\n\n## Documentation\n\n### How does it work?\n\nIf you click something with the mouse, the plugin will try to find out if your mouse-click invoked some IDEA action. If this is the case\nand we can find a so-called `ActionID`, the plugin registers this event. If your action is already connected to a shortcut, the plugin will\nshow you how the invoked action is called (e.g. Open Settings) and what the shortcut for the action is. \n\n![Notification](doc/img/notification.png)\n\nAdditionally, it will save your mouse-click\nin the Key Promoter X statistics tool-windows so that you see which actions you are using the most and which shortcuts you should learn first.\n\nIf the action is not connected to a shortcut but has an `ActionID` (which basically means we can assign a shortcut), the plugin still registers\nyour click. Depending on your settings under **Settings | Tools | Key Promoter X**, you will get a notification every x clicks on the\nsame action that asks you if you want to create a shortcut for this.\n\nBe aware that there are certain mouse-clicks that, although they do something, cannot be successfully inspected and the plugin won't be able\nto help you with those. This for instance happens for some of the buttons in the tool-windows.\n\n### The Key Promoter X tool-window\n\nThe Key Promoter X comes with built in tool-window on the right side that gives you access to your hit-list of missed shortcuts and to the\nthe list of suppressed items.\n\n![Tool-window](doc/img/tool-window.png)\n\nEvery mouse click that is connected to an action with a shortcut will be registered in the statistic. The items in this list are ordered by\n how often you missed this shortcut.\n \nThere might be some mouse actions that you don't want to replace by its shortcut.\nFor those, you can press *Don't show again* in the notification and all suppressed shortcuts will appear in the list below the statistics.\nYou can re-activate a suppressed item by double-clicking on it in the suppressed list.\n\nThe Key Promoter X toolwindow additionally allows you to clear your statistics and make a fresh start, and you can\nsnooze the Key Promoter X notification until the restart of IDEA (or you turn it off again).\n\n### Settings for the Key Promoter X\n\n Settings for the plugin can be found under **Settings | Tools | Key Promoter X**.\n\n![Settings Panel](doc/img/settings.png)\n\n#### General\n\n- Show only keyboard shortcuts prevents the display of notifications of short-cuts for the mouse. One example is the\n*Go to declaration* action, which also has certain mouse combination to invoke the action. Enabling this option will\nonly show valid keyboard short-cuts.\n- Disable in presentation or distraction free mode will disable the Key Promoter X when you are giving a presentation or\nyou explicitly don't wan to be disturbed.\n\n#### Settings\n\n- Clicks before notification is shown adjusts whether the Key Promoter X should display a notification each time you press\na button with the mouse that has a key combination available.\nE.g., with a setting of 2, every second click will show a notification.\n- Number of invocations before suggesting to create adjusts how often a button without a short-cut needs to be clicked\nbefore you see a message suggesting to create one for it.\n\n#### Enable for\n\nAdjusts which buttons are allowed to show a tip. Note that the *All Buttons* checkbox will try\nto catch as many mouse-clicks as possible, even if you are not pressing a real button. This will show you for instance a tip when you\nhold Ctrl and press on a Java method to jump to its declaration which can be replaced by Ctrl+B.\n\n\n## ![dev image][dev-image] Development  [![Build Status](https://travis-ci.org/halirutan/IntelliJ-Key-Promoter.svg?branch=KeyPromoterX)](https://travis-ci.org/halirutan/IntelliJ-Key-Promoter)\n\nThe plugin is written in Java using IntelliJ's plugin framework.\nThe code-base is small and contains only a handful of well documented classes, which makes it an excellent candidate to \nlearn how to implement IntelliJ plugins.\n\nThe code is hosted on GitHub and has a [Travis-CI](https://travis-ci.org/) integration for automatic building.\nCompilation is done with Gradle using the IntelliJ Gradle plugin and should work out of the box with a recent (v3.5) version.\n\n## ![bug image][issues-image] Reporting issues\n\nIf you experience bugs or weird behavior please create an issue [on the bug tracker](https://github.com/halirutan/IntelliJ-Key-Promoter/issues).\n\n\n## ![contact image][contact-image] Credits\n\nThe initial version was [implemented by\nDmitry Kashin](https://code.google.com/p/key-promoter/)\nwho unfortunately stopped maintaining the code and pushed the\nlast version in 2012, more than 7 years ago.\n\n[User athiele](https://github.com/athiele/key-promoter-fork/commits/master)\ntook the time to fork the original code, fix issues and provide\na version that can be used on more recent IDEA versions but stopped working on it a few years ago.\n\n\n[logo-image]: http://i.imgur.com/p3u3ehU.png\n[doc-image]: http://i.stack.imgur.com/erf8e.png\n[dev-image]: http://i.stack.imgur.com/D9G2G.png\n[issues-image]: http://i.stack.imgur.com/K4fGd.png\n[contact-image]: http://i.stack.imgur.com/tCbmW.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalirutan%2FIntelliJ-Key-Promoter-X","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalirutan%2FIntelliJ-Key-Promoter-X","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalirutan%2FIntelliJ-Key-Promoter-X/lists"}