65

I just bought an "Apple Keyboard with Numeric Keypad", then I connected it to my Macbook Pro running Lion.

But the home and end key under the F14 key doesn't work as I expected. Say in "Pages", the home key doesn't bring the cursor to the beginning of the line, while the end key takes you to the bottom of the page.

Does anyone know how to re-map the home/end key?

0

4 Answers 4

66

One option is to create ~/Library/KeyBindings/ and save a property list like this as ~/Library/KeyBindings/DefaultKeyBinding.dict:

{
  "\UF729"  = moveToBeginningOfLine:;
  "\UF72B"  = moveToEndOfLine:;
  "$\UF729" = moveToBeginningOfLineAndModifySelection:;
  "$\UF72B" = moveToEndOfLineAndModifySelection:;
}

Quit and reopen applications to apply the changes. Note that DefaultKeyBinding.dict is not supported by some applications like Xcode or Firefox.

In Terminal you can assign home (↖) to control-a and end (↘) to control-e from Preferences > Settings > Keyboard. That will leave you with no key combinations to scroll to the top or bottom of a window though.

It might be easier to just use the default keybindings. In most native text views:

  • control-A or option-up goes to the beginning of a paragraph
  • control-E or option-down goes to the end of a paragraph
  • command-left goes to the beginning of a line
  • command-right goes to the end of a line
6
  • 1
    This works on most of my apps like Pages and Textmate. But, I couldn't get it working in Terminal
    – user8207
    Commented Jul 22, 2011 at 21:54
  • 6
    Right. Terminal is another story, and you'll need to tell it how you want the Home and End keys to behave. You can do that in Terminal -> Preferences -> Keyboard. Set the Home key to send control-a and End key to send control-e. Those are the Emacs-style keybindings that the Terminal uses for line movement by default. It'll mimic the regular home/end movement you're after. Commented Jul 22, 2011 at 22:40
  • Thanks again Michael. I'll try it out tonight when I get back to my laptop.
    – Kevin Ren
    Commented Jul 25, 2011 at 0:44
  • 1
    Works in macOS Sierra! (Karabiner is not working at the moment). Commented Sep 24, 2016 at 7:42
  • 2
    @ckpepper02 RIGHT? I mean so frustrating and pointless 99% of the time since PgUp and PgDown get you to the same point for all but the longest of docs. Grrr!
    – Robino
    Commented Jan 25, 2018 at 15:01
32

Another option is to enable the "Use PC Style Home/End" setting in Karabiner (formerly KeyRemap4MacBook):

The setting is defined in Resources/include/checkbox/for_pc_users.xml.

You can also save a file like this as ~/Library/Application Support/KeyRemap4MacBook/private.xml:

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>HOMEENDIGNORE</appname>
    <equal>com.microsoft.Word</equal>
    <equal>com.microsoft.Powerpoint</equal>
    <equal>com.microsoft.Excel</equal>
    <equal>com.vmware.fusion</equal>
    <prefix>com.vmware.proxyApp.</prefix>
  </appdef>
  <item>
    <name>homeend</name>
    <identifier>homeend</identifier>
    <not>HOMEENDIGNORE</not>
    <autogen>__KeyToKey__ KeyCode::HOME, ModifierFlag::NONE, KeyCode::A, VK_CONTROL</autogen>
    <autogen>__KeyToKey__ KeyCode::END, ModifierFlag::NONE, KeyCode::E, VK_CONTROL</autogen>
    <autogen>__KeyToKey__ KeyCode::HOME, VK_SHIFT | ModifierFlag::NONE, KeyCode::A, VK_CONTROL | VK_SHIFT</autogen>
    <autogen>__KeyToKey__ KeyCode::END, VK_SHIFT | ModifierFlag::NONE, KeyCode::E, VK_CONTROL | VK_SHIFT</autogen>
  </item>
</root>

Then open the KeyRemap4MacBook application, press the ReloadXML button, and enable the setting. See https://pqrs.org/macosx/keyremap4macbook/xml.html.en for more information.

14
+50

Since this answer ranks well in search engines, I want to explain how I did it with the latest version of Karabiner.
The "Use PC Style Home / End" setting has to be downloaded from their website. You will want to go to "Complex Modifications", then "Add Rule" and then choose "Import more rules from the Internet". It will take you to this website: https://pqrs.org/osx/karabiner/complex_modifications/ where under "Emulation Modes" you can find "PC-Style Shortcuts". Once you click "Import into Karabiner-Elements", you can just activate it and are ready to go 🙌🏼
You will only need to choose "Add rule" and find the "Use PC Style Home / End" setting right there.

complex-modifications page

1
  • 4
    You are my hero.
    – afeique
    Commented Feb 20, 2019 at 19:21
1

I would suggest you the awesome keyremap4macbook, it's free amd despite the name it works on any mac (not necessarily macbooks) and here you can find the easiest way to change the default behaviour of home/end buttons to work like they should (IMO)

1
  • I concur, I more frequently home and end on a line basis rather than on a full document basis. Got to do everything we can to reduce the friction to executing the most frequent use cases and push keyboard shortcut combinations and the like to less frequent commands.
    – jxramos
    Commented Mar 9, 2018 at 0:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .