188

Is there a free app that I can use to move a window from one monitor to the other monitor (assuming only two monitors) via the keyboard? I shouldn't have to use the mouse at all (e.g., for selecting the window or the monitor, or for dragging).

I know this can be done in Linux using compiz; I'm surprised there isn't a (free) option for OS X.

1

16 Answers 16

130

UPDATE: Spectacle is no longer maintaned. The website forwards users to Rectangle, see Jack's answer or https://github.com/rxhanson/Rectangle/releases.


I just tried Spectacle, great app and it's free.

This is what it can do with the selected group of windows.

enter image description here

You need to activate accessibility support.

System Preferences > Accessibility > Enable access for assisted devices

As per comments: The accessibility option in Mavericks is now in

System Preferences > Security and Privacy > Privacy > Accessibility

enter image description here

enter image description here

11
  • 1
    Worked for me without having to enable assistive devices in accessibility options. Mar 3, 2013 at 13:49
  • 2
    With OS X Mavericks, the option to enable access for assistive devices has moved to System Preferences -> Security and Privacy -> Privacy -> Accessibility, where you will see Spectacle listed and can allow it to control your computer.
    – nathan
    Oct 28, 2013 at 14:54
  • To specifically identity the shortcut, Spectacle use the shortcuts, ⌃⌥⌘← & ⌃⌥⌘→ to alternate windows to each display.
    – Shawn Conn
    Jan 8, 2016 at 5:19
  • 3
    it's awesome and can do many cool things that win7+ is able to do which I missed, BUT I couldn't make it do what the original question is asking - move the window across monitors. :(
    – kumetix
    Oct 9, 2016 at 14:07
  • 1
    Works well. Although a way to move windows from one screen(not monitor) to other could be helpful. Works for the question asked.
    – Ajak6
    Jun 16, 2017 at 18:22
118

There is yet another option that's completely free and requires no third-party app. Be aware that I've only tested this on MacOS latest version Catalina (as of now). For other OS versions see Create keyboard shortcuts for apps on Mac

  1. Go to System Preferences
  2. Select Keyboard and then the Shortcuts tab
  3. Then on the list that appears select App Shortcuts
  4. Add new shortcuts like this:
    • Click on the plus sign to add a new one, the Menu Title field has to match exactly the text that appears on the Window menu in every application: "Move to DISPLAY NAME" (To find the text just open the Window menu on any application)
    • Finally on the Keyboard Shortcut field enter the shortcut you'd like to use
    • Add as many shortcuts as you need to move any window between your displays!

enter image description here

18
  • 23
    This should be the new correct answer. Also it should be noted, if you have multiple monitors of the same brand and model, it will toggle between them so you only need one shortcut for both/all screens
    – AtomRiot
    Mar 18, 2020 at 15:41
  • 5
    works like a charm, this should be the correct answer. volni Mar 25, 2020 at 7:59
  • 2
    Yay! I'm just playing around now with my windows back and forth :D Joy! Thanks! Definitely the correct answer.
    – yair
    Mar 31, 2020 at 21:12
  • 2
    "Move to Built-in Retina Display" for easy copy-paste
    – yzorg
    Jun 27, 2020 at 18:06
  • 12
    Unfortunately this only works for apps that have a "Window → Move" menu option. Not as convenient as the MS Windows "Windows Key + Shift + Right arrow".
    – Pierre
    Jul 20, 2020 at 15:14
59

I ended up using BetterTouchTool to do this. Overall I found it to be the most configurable. Here is a screenshot of my configuration, whereas Cmd+Ctrl+W moves a window to the next monitor.

If you have a 3 monitor setup (2 external monitors and the Mac monitor), you can set up the "Move Window to Next Monitor" to the right by doing the following:

  1. set up a new shortcut, specify "Move Window to Next Monitor" as the Predefined Action
  2. click Attach Additional Action and again specify "Move Window to Next Monitor" as the action
  3. Voila, you can now move a window to the monitor on the right (a little hacky I know, but it works until the developer of BTT updates the app)

BetterTouchTool keyboard configuration

The only shortcoming of BetterTouchTool is poor Lion support (not all features are available) but it is available as an alpha release. This specific keyboard shortcut should work fine in Lion with the stable version, I reckon.

6
  • 3
    Oh, and it's freeware.
    – adamrmcd
    Nov 6, 2011 at 3:50
  • I've gotten rid of Moom (almost ran out of trial clicks) and am using it BTT now. I feel like BTT can be slimmed down and polished but it does move windows from one monitor to another for free, so I can't complain.
    – volni
    Nov 8, 2011 at 21:15
  • 9
    It's not freeware now. Donationware.
    – vr_driver
    Mar 15, 2016 at 2:19
  • 7
    As far as I could tell, BTT is no longer free (there's a free trial though)
    – guyarad
    Jul 4, 2016 at 6:05
  • 4
    It's 2019 this answer suggested a commercial solution, use the other A'er if you'd rather not have to pay for an app to do something that the OS should prob. be doing for you for free.
    – slm
    Feb 20, 2019 at 1:21
21

Moom can do this. It is not free, but Moom is a fantastic window management app. It lets you assign keyboard shortcuts to a variety of windows movements (including move to other display) and gives you an overlay of the OS X standard window controls.

Here are some screenshots:

mouse usage keyboard usage

Here is a list of window management apps from another AskDifferent post, What Window Management Options exist for OS X?. The only free option is Shiftit, and I'm not sure if it offers the functionality you are looking for.

4
  • 1
    +1 for Moom. Discovered it a few months ago, I love it. Great value at only $5 too.
    – robmathers
    Oct 20, 2011 at 19:25
  • I've been using ShiftIt for arranging windows within the same monitor. It's an excellent tool for that. However, it offers no move-to-other-display functionality.
    – volni
    Oct 20, 2011 at 20:12
  • I'd check out Moom then. I know you wanted a free app, but it's quite inexpensive compared to many other Mac window managers. Plus, the overlay they designed for close/min/maximize buttons is so spiffy that they deserve the $5. :) Oct 20, 2011 at 20:14
  • @ArtemShnayder no longer true, ver 1.6 released this year now supports it; check out @WilfredSpringer 's answer
    – tutuDajuju
    Oct 30, 2014 at 8:06
16

I was using ShiftIt for ages.

However, I thought it didn't support dealing with multiple displays, so I started looking for alternatives. I installed Spectacle, and changed the key bindings to be the same as ShiftIt's.

Then, when I wanted to deinstall ShiftIt, I found out it does actually support moving windows to different screens, using: CtrlOptionCommandN

So I uninstalled Spectacles; still a happy ShiftIt user.

4
  • Default for me was Ctrl+Option+Command+Space
    – Mordred
    Jul 12, 2017 at 16:36
  • This should be the correct answer. It works.
    – ji-ruh
    Jul 25, 2017 at 3:33
  • 3
    If the window is maximized, shiftlt will keep it maximized in the next display, contrary to spectacle. Best solution IMO :) Jan 5, 2018 at 9:16
  • ShiftIt won! Spectacle is not able to un-zoom a window. It has an option called Fullscreen, that's actually not MacOS' fullscreen (zoom), but maximize. And when a window is in the fullscreen (zoomed) mode, Spactacle is unable to control it at all. But ShiftIt is able to un-zoom it and then it's possible to move it to another display. Apr 26 at 2:09
15

Just wanted to mention that there's a setting in System Preferences > Mission Control called "Group windows by application" that shows the app icons and allows you to drag the icon into another desktop/monitor. It's amazing for apps that have 10+ windows.

1
  • This only seems to work though if all windows are already on the same space (not if they are distributed between spaces).
    – Patrick
    Feb 2, 2021 at 17:08
14

Check out Rectangle App. It's free, open-source, and is billed as the spiritual successor to the once brilliant (but sadly, no-longer-maintained) Spectacle.

You can install Rectangle App either via their website or with Homebrew: brew install --cask rectangle

enter image description here

2
12

macOS Big Sur has built-in tool to do this. Press/click on the green button on top of a window for a second to get a dropdown with options for the current windows.

enter image description here

3
  • 7
    There is no keyboard shortcut for this though, right?
    – nohillside
    Jan 31, 2021 at 13:31
  • 7
    Yes but I figure it's worth pointing out that now this window moving to other display thing is baked in the OS
    – John Indra
    Jan 31, 2021 at 13:54
  • 4
    It's not a Big Sur Specific, it's been there for a couple of earlier versions.
    – Mahbub
    May 10, 2021 at 6:32
11

FYI, Magnet, the popular window placement/sizing application, has "Next Display" and "Previous Display" shortcuts right out of the box, at least in version 2.1 (Feb 14, 2017).

Magnet on the Mac App Store

Magnet's Website

1
  • Magnet is nice. If they only would have a nicer menu bar icon it would be perfect.
    – leymannx
    Mar 19, 2018 at 8:23
5

BetterSnapTool also has this feature (as a shortcut). I think it was a free app, and its been a great one.

There is a shortcut where you can maximize the window in the next screen (among other shortcuts or ways of doing this). See the screenshot of the related shortcuts.

enter image description here

3
  • wish they had "full screen on next monitor" too!
    – xyz
    Feb 13, 2015 at 14:40
  • it is called BetterTouchTool the free version and the option is found under window resize and move Aug 3, 2015 at 5:35
  • As far as I could tell, BTT is no longer free (there's a free trial though)
    – guyarad
    Jul 4, 2016 at 6:05
5
2
3

building on the answer above, using native Mac controls. There is a menu item that you can use to move apps between screens. It does not have a keyboard shortcut though which is what I was looking for. But there's hope! Using keyboard shortcuts, you can create your own shortcuts to move windows between screens. Here's how:

Find the name of the menu item you want to create a shortcut for: Click Window in any application and look for a menu item that says "Move to "

Create a keyboard shortcut to do it: Open keyboard settings (System preferences -> Keyboard). Choose "App Shortcuts". Click + to create a new shortcut. Set Application to "All Applications". Set Menu Title to exactly the menu item wording you found above Set the keyboard shortcut you want to use

If you did this successfully, you should now see the shortcut appear next to the menu item and using your keyboard should moved the window to the other screen.

NOTES: You will need to do the steps above to create a shortcut for each screen you have. To get the screen names, you'll need to move applications to each screen and see what the menu item changes to and then create a shortcut for that screen.

When I first did this, the shortcut didn't work. I suspect I chose a keyboard shortcut that was already in use somewhere else. I fixed this by using the Command, Option, and Control buttons as part of the shortcut

This works for almost every app I have but one app doesn't support this because it doesn't have the menu item

2
  • This should be the selected answer, works perfectly!
    – C0D3
    Oct 22, 2021 at 18:18
  • What do you mean by "the answer above"? The order answers are displayed in can change based on the chosen sorting mechanism, votes on the answers themselves changing, and new answers coming in. In general, answers should stand on their own; if you do refer to another answer, you should summarize/quote the relevant parts of that answer in your own answer in case that answer is edited, deleted, or moved.
    – V2Blast
    Oct 27, 2021 at 17:08
3

If you don't want to install any third-party software, you can switch the current window to any monitor by going to the following menu

Window -> Select the monitor / display name

If the menu is not enabled, Click on the green button enter image description here, to come out of full screen to enable the below menu then click,

Window -> Select the monitor / display name

Also after coming off of full screen mode, if you mouse over on the green button, you can get a pop-up with the option to "move to desired screen", click on it to move it to the desired screen.

enter image description here

Hope this helps

1
  • This must be the official answer as this is the easiest thing to do. May 28, 2021 at 8:22
1

This open source app is simple easy to use and free. It will accomplish what you need.

https://www.spectacleapp.com/

0

This can also be done using the free, open-source tiling window manager Amethyst using the "Swap focused window to (counter-)clockwise screen" shortcut.

enter image description here

0

Inspired by Wellington Felix's answer, with the same caveat that it only works for apps that have a "Window → Move" option.

  1. Activate Help menu: Shift/
  2. Search for Move to <display name>
  3. Enter

or

  1. Activate Help menu: Shift/
  2. Go to Window menu:
  3. Use m and arrow keys to select desired display
  4. Enter

You must log in to answer this question.

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