3

I am aware that mouse keys allows you to control the pointer with your keyboard. When using multiple monitors, however, this is painfully slow. Getting across 48 inches with mouse keys isn't fun.

Are there keyboard shortcuts (or a third-party program) that allow you to "snap" or "jump" the pointer to various places on the screen? Something that, e.g., would snap the pointer to the center of the current window, or snap it to pre-defined "snap-areas".

1 Answer 1

3

Karabiner

Karabiner comes with everything you need—a way to define a shortcut, and a way to move the mouse. The warp-mouse-cursor-position utility lives in /Applications/Karabiner.app/Contents/Library/utilities/bin/.

It has a default setting to warp the mouse to the center of the current window by tapping fn or holding ' or /, but for a customized version, add this to your ~/Library/Application Support/Karabiner/private.xml: (After you’re done, go into Karabiner’s preferences and check the box inside Mouse Warping.)

<item>
    <name>Mouse Warping</name>
    <vkopenurldef>
      <name>KeyCode::VK_OPEN_URL_SHELL_mousetowindowcenter</name>
      <url type="shell">
        <![CDATA[
          /Applications/Karabiner.app/Contents/Library/utilities/bin/warp-mouse-cursor-position front_window middle 0 center 0
        ]]>
      </url>
    </vkopenurldef>
    <item>
        <identifier>private.f14_mousetowindowcenter</identifier>
        <name>F14 to move the mouse to the center of the current window</name>
        <autogen>
            --KeyToKey--
            KeyCode::F14,
            KeyCode::VK_OPEN_URL_SHELL_mousetowindowcenter
        </autogen>
    </item>
</item>

With Karabiner's utility, you can use the screen option like this:

warp-mouse-cursor-position screen NUM VERTICAL X_OFFSET HORIZONTAL Y_OFFSET

VERTICAL can be top, middle, or bottom, and HORIZONTAL can be left, center, or right.

X_OFFSET and Y_OFFSET can be numerical values, like +10 or -10. Just be careful to put the arguments in the right order—they seem oddly switched.

(For the front window, just use front_window instead of screen.)

cliclick

Probably the most popular way, but in order to use it for moving to the middle of a window, you’d need an AppleScript to get the bounds of the current window, then calculate the center, etc.

3
  • Perfect, and I already use Karabiner!
    – Dennis
    Oct 15, 2014 at 20:40
  • I combined your XML with seil to remap CAPSLOCK to F14, works like a dream.
    – Dennis
    Oct 15, 2014 at 20:52
  • For anyone that sees this, be aware that as of this date, it does not full support OS X SIERRA, yet. Jan 27, 2017 at 14:11

You must log in to answer this question.

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