-
-
Save lenalebt/64d5ea94d6077a5becd00c33d0514cac to your computer and use it in GitHub Desktop.
| /* | |
| PUT THIS FILE IN ~/Library/KeyBindings/DefaultKeyBinding.dict | |
| This file remaps the key bindings of a single user on Mac OS X 10.5 to more closely | |
| match default behavior on Windows systems. This particular mapping assumes | |
| that you have also switched the Control and Command keys already. | |
| This key mapping is more appropriate after switching Ctrl for Command in this menu: | |
| Apple->System Preferences->Keyboard & Mouse->Keyboard->Modifier Keys...-> | |
| Change Control Key to Command | |
| Change Command key to Control | |
| This applies to OS X 10.5 and possibly other versions. | |
| Here is a rough cheatsheet for syntax. | |
| Key Modifiers | |
| ^ : Ctrl | |
| $ : Shift | |
| ~ : Option (Alt) | |
| @ : Command (Apple) | |
| # : Numeric Keypad | |
| Non-Printable Key Codes | |
| Up Arrow: \UF700 Backspace: \U0008 F1: \UF704 | |
| Down Arrow: \UF701 Tab: \U0009 F2: \UF705 | |
| Left Arrow: \UF702 Escape: \U001B F3: \UF706 | |
| Right Arrow: \UF703 Enter: \U000A ... | |
| Insert: \UF727 Page Up: \UF72C | |
| Delete: \UF728 Page Down: \UF72D | |
| Home: \UF729 Print Screen: \UF72E | |
| End: \UF72B Scroll Lock: \UF72F | |
| Break: \UF732 Pause: \UF730 | |
| SysReq: \UF731 Menu: \UF735 | |
| Help: \UF746 | |
| NOTE: typically the Windows 'Insert' key is mapped to what Macs call 'Help'. | |
| Regular Mac keyboards don't even have the Insert key, but provide 'Fn' instead, | |
| which is completely different. | |
| */ | |
| { | |
| "\UF729" = "moveToBeginningOfLine:"; /* Home */ | |
| "@\UF729" = "moveToBeginningOfDocument:"; /* Cmd + Home */ | |
| "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */ | |
| "$@\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; /* Shift + Cmd + Home */ | |
| "\UF72B" = "moveToEndOfLine:"; /* End */ | |
| "@\UF72B" = "moveToEndOfDocument:"; /* Cmd + End */ | |
| "$\UF72B" = "moveToEndOfLineAndModifySelection:"; /* Shift + End */ | |
| "$@\UF72B" = "moveToEndOfDocumentAndModifySelection:"; /* Shift + Cmd + End */ | |
| "^\UF702" = "moveToBeginningOfLine:"; /* Home */ | |
| "^\UF703" = "moveToEndOfLine:"; /* End */ | |
| "$^\UF703" = "moveToEndOfLineAndModifySelection:"; /* Shift + End */ | |
| "$^\UF702" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */ | |
| "\UF72C" = "pageUp:"; /* PageUp */ | |
| "\UF72D" = "pageDown:"; /* PageDown */ | |
| "@x" = "cut:"; /* Shift + Del */ | |
| "@v" = "paste:"; /* Shift + Help */ | |
| "@c" = "copy:"; /* Cmd + Help (Ins) */ | |
| "@\UF702" = "moveWordBackward:"; /* Cmd + LeftArrow */ | |
| "@\UF703" = "moveWordForward:"; /* Cmd + RightArrow */ | |
| "@$\UF702" = "moveWordBackwardAndModifySelection:"; /* Shift + Cmd + Leftarrow */ | |
| "@$\UF703" = "moveWordForwardAndModifySelection:"; /* Shift + Cmd + Rightarrow */ | |
| "@\UF728" = "deleteWordForward:"; /* Cmd + Delete */ | |
| "@\U007F" = "deleteWordBackward:"; /* Cmd + Backspace */ | |
| } |
Thanks for this manual @lenalebt
I was looking how to remap Option+arrow to Cmd+arrow for quite a long. I read about the approach with DefaultKeyBinding.dict on stackoverflow but had no idea about possible key codes.
Also, It worth to add that it not need to restart/logout your Mac after edit DefaultKeyBinding.dict. It applied right after you press "save". Never-less it need to fully quit and open again target application to apply changes. For example I saw changes only after reopen Notes app.
To make this works In Intellij 2020.2 I was need to edit 4 mappings: "Move caret to next/prev word", "Move caret to line end/start".
And regards switching between apps. I love AltTab app. It free and open source and provides very convenient way to navigate through the opened windows.
Hey, thanks for pointing me to AltTab, I'll try that out :-)
Thanks, I didn't have time to set up a full Ukelele profile and this covers the basics quite nicely!
Note: On my Catalina install I just had to log out and uncheck "reopen my windows" for the changes to apply globally.
Thank you for writing this. I used Ukelele.
Hey, thank you for your feedback, that really means a lot to me :).
I did not write this down here yet, but I changed my approach in the meantime a bit. I used "Ukulele" to generate a keyboard map, and now I do have "nodeadkeys" working as well. Without going too much into detail right now, this is roughly what changed by doing so in contrast to the above:
Maybe I'll share my keyboard maps that I created some time over here as well (but I am currently not on that machine). Ukulele took some time to get used to for me though.