/jetbrains-macos-keybindings-for-all

Modified macOS keybindings for JetBrains IDEs on Windows and Linux

Apache License 2.0Apache-2.0

👋 Hello from Sept 2023! I use this keymap every single day. I hope you'll take the lack of updates as a testament to the stability of JetBrains IDEs' keyboard workflow despite recent overhauls to the GUI. As always, if you notice any issues, please let me know.

JetBrains macOS Keymap for Windows and Linux

JetBrains IntelliJ Plugins

Cheatsheet

This repo converts the lovely Mac OS X 10.5+ keymap in JetBrains IDEs from macOS-specific bindings to ones without meta (i.e., the Command/splat/cloverleaf interchange from hell).

While some keybindings are close to their original, others have more modifier keys or different bindings altogether to avoid conflicts.

Build

Follow JetBrains' guide for using Gradle for plugin development.

Installation

Install the plugin from the plugin marketplace or grab the zip file from the latest release and install manually.

Release

For release tasks, the INTELLIJ_PUBLISH_TOKEN environment variable should be available.

Issues

If you notice any issues, please report them here!

Key Updates

Actions Mac OS X 10.5+ Keybindings New Keybindings
ActivateProjectToolWindow Command-1 Alt-1
ActivateFavoritesToolWindow Command-2 Alt-2
ActivateFindToolWindow Command-3 Alt-3
ActivateRunToolWindow Command-4 Alt-4
ActivateDebugToolWindow Command-5 Alt-5
ActivateProblemsViewToolWindow Command-6 Alt-6
ActivateStructureToolWindow Command-7 Alt-7
ActivateServicesToolWindow Command-8 Alt-8
ActivateVersionControlToolWindow Command-9 Alt-9
ActivateCommitToolWindow Command-0 Alt-0
Back Command-[
Command-Alt-Left
Control-[
ChangesView.Move Command-Shift-M Control-Shift-M
ChooseDebugConfiguration Control-Alt-D Control-Alt-Shift-D
ChooseRunConfiguration Control-Alt-R Control-Alt-Shift-R
CloseContent Command-W Control-W
ContextHelp Command-Shift-F1 Control-Shift-F1
Debug Control-D Control-Alt-D
Diff.NextChange Command-Shift-]
Control-Right
Control-Shift-]
Diff.PrevChange Command-Shift-[
Control-Left
Control-Shift-[
EditorCodeBlockEnd Command-Alt-] Control-Alt-]
EditorCodeBlockEndWithSelection Command-Alt-Shift-] Control-Alt-Shift-]
EditorCodeBlockStart Command-Alt-[ Control-Alt-[
EditorCodeBlockStartWithSelection Command-Alt-Shift-[ Control-Alt-Shift-[
EditorDeleteLine Command-Backspace Control-Backspace
EditorLineEnd Command-Right Control-Right
EditorLineEndWithSelection Command-Shift-Right Control-Shift-End
EditorLineStart Command-Left Control-Left
EditorLineStartWithSelection Command-Shift-Left Control-Shift-Home
EditorLookupDown Control-Down Control-Alt-Down
EditorLookupUp Control-Up Control-Alt-Up
EditorMatchBrace Control-M Control-Alt-M
EditorToggleColumnMode Command-Shift-8 Control-Alt-Shift-8
EditSource Command-Down Control-Down
EmojiAndSymbols Command-Control-Space Control-Alt-Shift-Space
Exit Command-Q Control-Q
ExpandAllToLevel1 Command-Alt-NumPad[*] + 1 Control-Alt-NumPad[*] + 1
ExpandAllToLevel2 Command-Alt-NumPad[*] + 2 Control-Alt-NumPad[*] + 2
ExpandAllToLevel3 Command-Alt-NumPad[*] + 3 Control-Alt-NumPad[*] + 3
ExpandAllToLevel4 Command-Alt-NumPad[*] + 4 Control-Alt-NumPad[*] + 4
ExpandAllToLevel5 Command-Alt-NumPad[*] + 5 Control-Alt-NumPad[*] + 5
ExportToTextFile Control-O Control-Shift-O
FileChooser.TogglePathShowing Command-P Control-P
Find Command-F Control-F
FindInPath Command-Shift-F Control-Shift-F
FindNext Command-G Control-Alt-G
FindPrevious Command-Shift-G Alt-Shift-G
Forward Command-]
Command-Alt-Right
Control-]
Generate Command-N Control-N
GotoChangedFile Command-O Control-O
GotoClass Command-O Control-O
GotoFile Command-Shift-O Control-Shift-O
GotoLine Command-L Control-L
GotoRelated Control-Meta-Up Control-Alt-Home
GotoSymbol Command-Alt-O Control-Alt-O
GotoTypeDeclaration Command-Shift-B
Control-Shift-B
Command-Shift-button1
Control-Shift-B
Control-Shift-button
MethodDown Control-Down Control-Alt-Down
MethodUp Control-Up Control-Alt-Up
MinimizeCurrentWindow Command-M Control-M
NewElement Command-N Control-N
NewScratchFile Command-Shift-N Control-Shift-N
NextEditorTab Control-Shift-Right Control-Alt-Shift-Right
NextProjectWindow Command-Alt-` Control-Alt-`
NextSplitter Alt-Tab Control-Alt-Left
NextTab Command-Shift-]
Control-Right
Control-Shift-]
OptimizeImports Control-Alt-O Control-Alt-Shift-O
OverrideMethods Control-O Alt-Shift-O
PreviousEditorTab Control-Shift-Left Control-Alt-Shift-Left
PreviousProjectWindow Command-Alt-Shift-` Control-Alt-Shift-`
PreviousSplitter Alt-Shift-Tab Control-Alt-Right
PreviousTab Command-Shift-[
Control-Left
Control-Shift-[
QuickImplementations Command-Y Control-Y
Refresh Command-R Control-R
Control-F5
ReplaceInPath Command-Shift-R Control-Shift-R
Rerun Command-R Control-R
Run Control-R Control-Alt-R
RunClass Control-Shift-R Control-Shift-C
ServiceView.ShowServices Command-Shift-T Control-Shift-T
SafeDelete Command-Delete Control-Delete
SearchEverywhere.NavigateToNextGroup Command-Down Control-Down
SearchEverywhere.NavigateToPrevGroup Command-Up Control-Up
SelectAllOccurrences Command-Control-G Control-Alt-Shift-G
ShowBookmarks Command-F3 Control-F3
ShowContent None Control-Shift-Down
ShowNavBar Command-Up Control-Up
ShowProjectStructureSettings Command-; Control-;
ShowSettings Command-, Control-,
TestGestureAction Command-1 Control-Alt-1
ToggleFullScreen Command-Control-F Control-Alt-Shift-F
Undo Command-Z Control-Z
Vcs.MoveChangedLinesToChangelist Command-Shift-M Control-Shift-M
Vcs.QuickListPopupAction Control-V Control-Shift-V
Vcs.ShowMessageHistory Command-E Control-E
Vcs.UpdateProject Command-T Control-Alt-Shift-T
VcsHistory.ShowAllAffected Command-Control-A Control-Alt-A
ZoomCurrentWindow Command-Control-= Control-=

Removed Keybindings

Actions Mac OS X 10.5+ Keybindings Alternatives
$Delete Command-Backspace Just backspace
Back Command-Alt-Left Control-[
CommentByBlockComment Command-Alt-/
Command-Shift-/
Control-Shift-/
EditorDown Control-N Down
EditorLeft Control-B Left
EditorLineEnd Control-E Control-Right
End
EditorLineStart Control-A Control-Left
Home
EditorPreviousWord Control-Alt-B Alt-Left
EditorPreviousWordWithSelection Control-Alt-Shift-B Alt-Shift-Left
EditorNextWord Control-Alt-F Alt-Right
EditorNextWordWithSelection Control-Alt-Shift-F Alt-Shift-Right
EditorRight Control-F Right
EditorToggleColumnMode Command-Shift-NumPad[*] Control-Alt-Shift-8
EditorUp Control-P Up
FindNext Control-L F3
FindPrevious Control-Shift-L Shift-F3
Forward Command-Alt-Right Control-]
RerunTests Command-Control-R Alt-Shift-R
Resume Command-Alt-R F9
Vcs.ShowMessageHistory Control-M Control-E

Default Implicit Keybindings

These keybindings are set by the $default keymap and are, therefore, not included even though the Mac OS X 10.5+ keymap may define them explicitly.

Actions Mac OS X 10.5+ Keybindings $default Keybindings
ChangesView.GroupBy.Directory Control-P Control-Alt-P
ChangesView.GroupBy.Module Control-M Control-Alt-M
Diff.ApplyLeftSide Control-Shift-Right Alt-Shift-Right
Diff.ApplyRightSide Control-Shift-Left Alt-Shift-Left
ForceRefresh Command-Alt-Shift-R Control-Shift-F5
GoToDeclaration Command-B
Command-click
Middle click
Force touch
Control-B
Control-click
RunToCursor Alt-F9
Force touch
Alt-F9
ServiceView.GroupByContributor Control-T Control-Alt-T
ServiceView.GroupByServiceGroups Control-P Control-Alt-P
TodoViewGroupByShowModules Control-M Control-Alt-M
TodoViewGroupByShowPackages Control-P Control-Alt-P
TodoViewGroupByFlattenPackage Control-F Control-Alt-C
ToggleAmendCommitMode Control-Alt-M Alt-M
ToggleFindInSelection Control-Alt-E Control-Alt-E
UsageGrouping.Module Control-M Control-Alt-M
UsageGrouping.Directory Control-P Control-Alt-P
UsageGrouping.UsageType Control-T Control-Alt-T
UsageGrouping.FlattenModules Control-O Control-Alt-O
UsageGrouping.FileStructure Control-F Control-Alt-F
UsageGrouping.DirectoryStructure Control-D Control-Alt-D

Missing/no-op Keybindings

This list may change over time.

Actions Keybindings Reason
PrevWindow/NextWindow Command+Shift+` /Command+` Workaround for platform-specific issues. For Linux, use Alt-` in supported WMs. For Windows, try AltBacktick for a direct replacement or an AutoHotKey script for more customizable behavior.
EmojiAndSymbols Command-Control-Space This is rebound to Control-Alt-Shift-Space but does not function outside macOS. For Windows, use Super+; or Super+. to activate the built-in emoji picker.

FAQ

Oh no! My favorite keybinding changed after an update! What do I do?

This project tries to follow the Mac OS X 10.5+ keybindings as closely as possible. As new UI elements and IDE features are added, JetBrains may add and remove keybindings to better match their evolving feature set. If you find that your muscle memory is getting in the way of a new binding, make a copy of this keymap for your own custom shortcuts.

I just switched from macOS to Linux/Windows. What can I do to make the transition easier?

Use a plugin like Presentation Assistant or Key Promoter X to help you learn new shortcuts.