Skip to content

Make Home & End keys behave like Windows on Mac OS X  

I’ve been using Mac OS X daily since 2001 when I purchased my Titanium PowerBook and I still can’t get used the home and end key behavior.

If, like me, you want Home to send you to the start of the line and not to the top of the document then create a file called DefaultKeyBinding.dict in your ~/Library/KeyBindings folder (might need to create that folder too) with the following contents:

    "\UF729"  = moveToBeginningOfParagraph:; // home
    "\UF72B"  = moveToEndOfParagraph:; // end
    "$\UF729" = moveToBeginningOfParagraphAndModifySelection:; // shift-home
    "$\UF72B" = moveToEndOfParagraphAndModifySelection:; // shift-end
    "^\UF729" = moveToBeginningOfDocument:; // ctrl-home
    "^\UF72B" = moveToEndOfDocument:; // ctrl-end
    "^$\UF729" = moveToBeginningOfDocumentAndModifySelection:; // ctrl-shift-home
    "^$\UF72B" = moveToEndOfDocumentAndModifySelection:; // ctrl-shift-end

This remapping does the following in most Mac apps including Chrome (some apps do their own key handling):

  • Home and End will go to start and end of line
  • ShiftHome and ShiftEnd will select to start and end of line
  • CtrlHome and CtrlEnd will go to start and end of document
  • ShiftCtrlHome and ShiftCtrlEnd will select to start and end of document

Note that you will need to reboot after creating this file for it to take effect.

If you have a PC keyboard with LED backlighting and would like the scroll-lock, num-lock or caps-lock LEDs on when using your Mac check out my free SetLEDS for Mac


7 responses  

  1. pingback

    […] Make Home & End keys behave like Windows on Mac OS X, Damien Guard […]

    Windows 10 Developers - The Daily Six Pack: April 28, 2015April 27th, 2015
  2. Amazing! Works like a charm on latest el capitan version. Thanks!

    Alkirah – September 2nd, 2016
  3. For words selection like in Windows can be used next rules:

    “^\UF702” = (moveWordLeft:); // ctrl-left
    “^$\UF702” = (moveWordLeftAndModifySelection:); // ctrl-shift-left
    “^\UF703” = (moveWordRight:); // ctrl-right
    “^$\UF703” = (moveWordRightAndModifySelection:); // ctrl-shift-right

    Alex – September 30th, 2016
  4. This worked on the latest macOS as well. Thank you.

    Ryan – January 26th, 2017
  5. also works on Version Mac OS X 10.12.4 (16E195). Awesome thanks, I love it :-) Is there some more stuff how to use that? Would love if I can change all my favourite shortcuts in one place

    Martin – May 12th, 2017
    “DefaultKeyBinding.dict is ignored by some applications like XCode and Firefox and in some views like in WebKit web inspectors.”

    Also good luck mapping the function key, caps lock (read up on that- a large amount of people want that).

    I am a left-hand mouser and wanted cut/copy/paste functions with the right hand. Trouble is, you can’t map control+fn (for copy), nor shift+fn (for paste), which are the keys that map positionally on a PC keyboard (I’m talking for PC keyboards with 2 rows of three keys: Ins, Home, Pg UP / Del, End, Pg Down).

    Another issue is when you are like me, doing lots of Windoz in a VM (Oracle Virtualbox) and remote desktop (Microsoft Remote Desktop for MacOS). There you need to pass different keys so everything works. Same with terminal apps.

    Karabiner is the go-to tool for key remapping, but there are issues with Sierra (Karabiner-elements is the next thing, but still a work in progress.

    So, I built something that works in all contexts (ok, almost all) using Hammerspoon, a superb tool for automation on the Mac:

    Sean – November 6th, 2017
  7. Thanks a lot for this. I’ve been searching for a fix for a long time for this since moving to 10.12. Used to use Karabiner on prior versions of OSX.

    Shay – November 8th, 2017

Respond to this