Updated Mac OS X keymap. Feedback needed
Hi everyone!
I want to introduce here a new keymap scheme that we created recently for Mac OS X users.
The main reasons for doing this are:
- More native key combinations for standard actions (e.g. Find, Find Next, Go to Line, Close Tab, etc.)
- Less conflicts with the default system key bindings, such as Exposé (F9, F10, F11) and others.
The new keymap is available in the latest EAP builds, though it is not set by default now. To activate it open IDE Settings | Keymap and select the "Mac OS X 10.5+" schema from the dropdown.
I've attached the updated reference/cheatsheet PDF that you can print, for your reference.
The feedback is highly appreciated.
-Eugene
Attachment(s):
IntelliJIDEA9_ReferenceCard_Mac10_5.pdf
Please sign in to leave a comment.
Hi Eugene,
thanks a lot for that, very good idea in fact!
I'm using the new keymap now and will let you know how it goes.
rgds
-nodje
On 2009-12-01 05:16:21 +0900, Eugene Toporov
<eugene.toporov@jetbrains.com> said:
I can't find replacement for the Cmd+Y, it was deleting the current line.
I use it extensively.
cheers
Great approach! I'm working with IDEA both at work (Windows) and privately (Mac) and so I've to remember both keymap variants. I think many people are using IDEA in such a context. Originally I wanted to use the Windows keymap on my Mac but faced the "Insert" key problem. In fact there is no insert key on a Macbook Pro! Also the Windows keymap is much more similar to the Linux keymap(?) as I'm also using Linux from time to time. The point is: I want to have the (almost) same keymap for at least two OSs (Mac+Win)! I'm even willing to use Cmd/Ctrl+Shift+Option+S instead of the default Mac-wide Cmd+, shortcut to call the settings window. IDEA is an OS for its own... So as of now we have two Mac keymaps would you please keep the classic Mac keymap more Win-like. Actually I want one single "Cross-platform Meta keymap" which don't use any platform specific keys such as the "Insert" key... Sure, it wouldn't be "native" on any platform but it would be native for IDEA which is for many people the main app on their computer.
Please use Cmd-Backspace (⌘⌫) as delete line. It replaces the Cmd-Y
-Eugene
+1 for the unified keymap. I am nowhere near as efficient with IDEA when I switch over to may MacBook Pro.
-10000 for the unified keymap.
The problem is that the Mac has many, many keystrokes that are consistent across applications. On Windows and Linux no one expects or relies on consistency. On the Mac, everyone does. The same keystroke brings up preferences in every single application. The same keystroke closes the active window in every single application. And so on, and so on. To make the job even tougher, the function keys are, by default, pre-assigned to system functions. And then, of course, there's no insert key on Mac laptops. And no delete key (the Mac delete key is really a backspace key).
So if you're planning on switching back and forth between the Mac and PC you're completely out of luck. I went down that path when I first switched to the Mac and you're just trying to swim upstream. It's a different platform. Linux and Windows are cut out of the same UI mold. The Mac isn't.
And therefore you can choose between different keymaps! Different people different flavors... Indeed there are people who use their IDE more than the OS (Set) specific shortcuts and functions. And those people want primary identical IDE behavior on every platform because you can't expect the vice versa case. Also I've disabled some Mac specific shortcuts to get a Windows-like IDEA keymap. In fact I use many of the Mac OS shortcuts but there are no system-wide Mac shortcuts (that I've disabled to have a unified keymap experience) I miss when I'm working with IDEA.
No insert key, right but there is a delete key digraph: fn⌫
Most people have no choice (at work). Of course I'd like my company to use Macs but I don't think there are IT companies which could afford this.
Eugene,
I've tried that, but the behavior is different.
What I'm talking about is 'Delete Line At Caret' function, which is
unavailable in menus AFAIK.
In the new keymap, 'Delete Line At Caret' and 'Safe Delete' are both
mapped with ⌘⌫, which in effect always trigger 'Safe Delete'.
That renders 'Delete Line At Caret' unavailable.
Please also keep in mind that the delete key ⌫ is not available on
macbooks keyboard.
It'd be better to keep the less used shortcuts only use that ⌫ key.
Once you get use to 'Delete Line At Caret', you use it in each every
file you edit.
I highly recommend it! And it's coming shortcut ;)
-nodje
On 2009-12-02 01:56:04 +0900, Eugene Toporov
<eugene.toporov@jetbrains.com> said:
Nodje,
There are 2 different keys:
⌫ key — available on all keyboards (Also known as Backspace)
⌦ key — (aka Delete) only available on full keyboards (not on laptops). But to emulate it on a MacBook you can press Fn + ⌫.
So, Safe Delete uses ⌦ And Delete line at Caret is Cmd+⌫, which should be fine on any keyboard and seems pretty logical.
-Eugene
thanks a lot for the precision Eugene, wasn't aware of the ⌫ icon for the delete key, which is probably why I mixed it up with BS.
It's good like that for me and totally makes sense.
best rgds
nodje
I made a blog post a while back listing the Mac keyboard symbols and what they mean (http://tedwise.com/2009/04/28/what-do-those-weird-mac-symbols-mean/). When I switched to the Mac I was at a loss as to what some of the key symbols meant. The MacBook Pro keyboard doesn't have the symbols on most of the keys. Maybe it will help you.
Hey Charles
thanks for the post. It is in fact pretty useful!
Even though I've been on Mac for quite some years now, I missed a couple of symbols.
Also I'd appreciate if the Mac keymap would mirror the Eclipse keymap and shortcuts which are not available on Elipse should be represented by shortcuts that are also useable on a PC without a hassle.
Basically I'm for an unified keymap which represents the superset of the Eclipse keymap.
I've tried the new keymap and apreciate it very much as it's more native. Also I work on a Windows machine and want to use the same keymap on Windows too. The Cmd key is called "Meta" and I've thought this might me the Windows logo key but it isn't(?!). I've checked all special keys but no key had the value "Meta". So where is the Meta key on Windows?
I also mapped everything on my Mac to a Windows layout. The only real change was the INS - I mapped Apple-Enter for that and it seems to work well - I moved some of my Expose and other OS shortcuts around to acommodate the IDEA keymap, but generally, the key strokes are the same.
The only set Im still not sure about are the Copy/Paste/Cut. I have mapped these to Ctrl-C, Ctrl-X, Ctrl-V thinking that I would naturally use these since these are the common short cuts on a PC. However, the more I use my Macs (Im a relative newcomer in the Mac area), I find myself using the standard Apple shortcuts for Copy/Paste/Cut since all the other apps use that I guess Ive got used to using those shortcuts, so ill probably change those three keys back.
The Fn+Backspace works as Delete as has already been mentioned.
Nick
This is great!
I think it is nice to have two different options on Mac, a native Mac version like the new keymap for those using Mac as their primary platform, and a Windows-like version for those that have to use Windows at work but have a Mac at home.
Keeping the Windows-like version as an option could also be convenient when doing pair programming with Windows users.
This has been a source of frustration since I switched to Mac 2 years ago. I still find myself using the mouse when debugging because the key bindings conflicts. New key bindings that avoid OS X key bindings would be great.
In the new keymap there are at least 2 key bindings that still conflict: F8 (Step over) and Shift F8 (Step out) which is used for Spaces by OS X. Finding some other key bindings for these would be great.
The reference card is nice, but it would be great with som kind of documentation on just the key bindings that has been changed. Like:
Hi Ronny,
Thanks a lot for the feedback.
Yes, we left F8 unchanged. The reason was the fact that Spaces are off by default on Mac OS X. And finding other bindings appears to be not a trivial task now.
We'll also think about the change-list for keymaps. Thanks for the suggestion.
-Eugene
Hi,
This is nice!
As an old time Unix person who has been using OS X for many years, I grew to appreciate the consistent use of shortcut keys (Cmd and Opt) as well as the fact that most of the Cocoa applications support many emacs keystrokes.
Haven't tried this new scheme yet, but I see it doesn't use control keys very much, combining the standard Mac shortcuts and adding Emacs text editing shortcuts is my approach with a highly customized keyboard mapping.
This mapping is much better than my Mac mapping though!
Perhaps there are more people interested in a combination of Mac shortcuts for "actions" and "editing" with an additional set of emacs text editing commands on top??
(Will try this map out once EAP is downloaded)
I hope you find a different key binding. My experience is that most technically savvy Mac users (like developers) have Spaces enabled.
With the Mac Pro layout, I cannot toggle comments any longer. I think it was CMD+7 before and is now CMD + / = CMD + Shift + 7. This is assigned to 'Show Help Menu' in all Mac applications.
I need to say that I am using a German keyboard where / is reached with Shift +7
Actually on my Mac Pro notebook keys using Shift doesn't work at all.
For example, I cannot access the settings (CMD+; = Shift + CMD + ,) .
Is this only on my system?
Best Regards
Sebastian Hennebrueder
It's because you're using the German keyboard layout. Try ⌘+"the key to the left from your right shift key" to toggle comments.
Thanks that helps. So I need to keep an english keymap in my mind to memorize the keymap. It would be nice, if the PDF could be printed for different country key layouts.
Best Regards
Sebastian Hennebrueder
I think it's always been like that.
Same problem on a Norwegian keyboard. This is the first keyboard mapping I change when installing IntelliJ IDEA.
Something really simple that I only recently discovered is that you can disable the preset Mac OS function key assignments and get 'regular' function key operations instead. This is very useful if you ever use terminal-based apps (e.g. htop), need to switch consoles in a VM etc. Go to the keyboard control panel and check the "Use all F1, F2 etc keys as standard function keys". What's more, in writing this I've just noticed that the Apple Aluminium extended keyboard does have an Fn key, just below F13. Think I must be going blind or something...
Oh yes. That's the very first change I make to OS/X when I bring up a new machine. The standard setting is for people who use software that doesn't make use of function keys. Developers don't fit in that category. After that I install LaunchBar.
I'm using both Mac and Linux now and I find the transition to be frustrating to say the least, mostly in regards to the mapping of the major control/command/alt/option modifiers. Emacs 24 for the Mac has a great solution, which is to assign a mapping of the modifiers. It appears that there is a pretty close mapping of:
Thus, I'd like to use my mac-command-key for jetbrains-control-key, and my mac-control-key for jetbrains-option-key.
Emacs-24 handles this by simply using this little bit of lisp:
(when (eq system-type 'darwin) ;; mac specific settings
(setq mac-control-modifier 'meta)
(setq mac-command-modifier 'control)
Thus, I'd like to use my mac-command-key for jetbrains-control-key, and my mac-control-key for jetbrains-option-key. That way I could roughly use the same keymaps on both linux and mac with only slight modifications for missing keys and other system-wide settings.
I tried using KeyRemap4Macbook, and remapped my modifier keys, but that is maddening as the system wide commands that use the modifiers work differently just for Jetbrains.
Any advice?
Basic completion ^Space conflicts with the default spotlight search which is kinda really common in OSX.
Any standard suggestions on how to resolve this? :-/
Generally substitute the apple key for the control key.
Command-Space is the default for "keyboard layout switch", which is also pretty common and used very frequently.
So far remapped spotlight search for "alt-space".
Command-space is the default Spotlight key chord, not Control-space. And, out of curiosity, why do you switch between keyboard layouts? I've never used that function.