256

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

18 Answers 18

149

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

12
  • 1
    Worked for me without having to enable assistive devices in accessibility options. Commented 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
    Commented Oct 28, 2013 at 14:54
  • To specifically identity the shortcut, Spectacle use the shortcuts, ⌃⌥⌘← & ⌃⌥⌘→ to alternate windows to each display.
    – Shawn Conn
    Commented 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
    Commented 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
    Commented Jun 16, 2017 at 18:22
198

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

24
  • 35
    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
    Commented Mar 18, 2020 at 15:41
  • 5
    works like a charm, this should be the correct answer. volni Commented Mar 25, 2020 at 7:59
  • 8
    "Move to Built-in Retina Display" for easy copy-paste
    – yzorg
    Commented Jun 27, 2020 at 18:06
  • 25
    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
    Commented Jul 20, 2020 at 15:14
  • 13
    does not work if the Window is maximised. Commented Jun 29, 2021 at 0:34
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
    Commented 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
    Commented Nov 8, 2011 at 21:15
  • 9
    It's not freeware now. Donationware.
    – vr_driver
    Commented 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
    Commented 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
    Commented Feb 20, 2019 at 1:21
39

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

5
  • not yet there github.com/rxhanson/Rectangle/issues/199 Commented Feb 18, 2021 at 2:57
  • 2
    Awesome tool. Exactly what I was looking for.
    – scarface
    Commented Dec 13, 2021 at 17:00
  • 5
    the shortcut to move a window a screen to the left/right is ⌃+⌥+⌘+←/→ Commented Jan 12, 2023 at 19:11
  • 2
    does not work in fullscreen mode
    – Zeev G
    Commented Jun 26, 2023 at 14:45
  • 1
    Shortcut on Rectangle: ⌃⌥⌘ + ←/→ - move to next/prev display. Commented Nov 1, 2023 at 9:23
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
  • 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
    Commented 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. :) Commented 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
    Commented Oct 30, 2014 at 8:06
  • As far as I can tell, Moom is the only one that will let you move a window to the display in a given direction (up, down, left, right). The others just have "next display". Commented Aug 1, 2023 at 17:00
21

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

5
  • 11
    There is no keyboard shortcut for this though, right?
    – nohillside
    Commented Jan 31, 2021 at 13:31
  • 8
    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
    Commented 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
    Commented May 10, 2021 at 6:32
  • 1
    is there a way to do this without the mouse being used on a display? I just cracked my macbook display and am trying to move windows over from there to an external monitor to save some work but can't exactly see what I'm doing.
    – jxramos
    Commented Aug 12, 2022 at 20:43
  • Actually, it looks like from the Dock you can right click an app, then select Options, then select Desktop on Display 1 or Desktop on Display 2, etc.
    – jxramos
    Commented Aug 12, 2022 at 20:56
16

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
    Commented Feb 2, 2021 at 17:08
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
    Commented Jul 12, 2017 at 16:36
  • This should be the correct answer. It works.
    – ji-ruh
    Commented 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 :) Commented 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. Commented Apr 26, 2022 at 2:09
13

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
    Commented Mar 19, 2018 at 8:23
6

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
    Commented Feb 13, 2015 at 14:40
  • it is called BetterTouchTool the free version and the option is found under window resize and move Commented Aug 3, 2015 at 5:35
  • As far as I could tell, BTT is no longer free (there's a free trial though)
    – guyarad
    Commented Jul 4, 2016 at 6:05
6
2
  • BTT is no longer free Commented Apr 28, 2016 at 12:31
  • 3
    I would add Spectacle to this list.
    – guyarad
    Commented Jul 4, 2016 at 6:04
5

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

3
  • This should be the selected answer, works perfectly!
    – C0D3
    Commented 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
    Commented Oct 27, 2021 at 17:08
  • This works, but not with Firefox for some reason on macOS 13 (and even when it does work with, say Chrome, it seems buggy, probably a Ventura problem)
    – muru
    Commented Nov 2, 2022 at 7:17
5

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

2
  • This must be the official answer as this is the easiest thing to do. Commented May 28, 2021 at 8:22
  • 1
    @UpulDoluweera This can't be the official answer since it's not a keyboard shortcut. The question was about keyboard shortcuts only. But, still useful. Commented Sep 1, 2022 at 15:47
2

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
1

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

https://www.spectacleapp.com/

1

There is a tool for more advanced users called Hammerspoon. With this, you can achieve a lot of things and as this answer on a question on StackOverflow pointed out, it's pretty easy to achieve what you want with a simple Hammerspoon configuration.

Hammerspoon is not exactly an app, but it might still be interesting for some users.

-- From https://stackoverflow.com/a/58662204
hs.hotkey.bind({'alt', 'ctrl', 'cmd'}, 'n', function()
  -- Get the focused window
  local win = hs.window.focusedWindow()
  -- Get the screen where the focused window is displayed, a.k.a. current screen
  local screen = win:screen()
  -- Compute the unitRect of the focused window relative to the current screen
  -- and move the window to the next screen setting the same unitRect 
  win:move(win:frame():toUnitRect(screen:frame()), screen:next(), true, 0)
end)
1
  • +1 for Hammerspoon ... very useful tool. Maybe should point out that one can also use win:moveOneScreenEast() and the like (there's one function for each direction). It's useful to bind arrow keys to effect the keyboard shortcuts. hammerspoon.org/docs/hs.window.html#moveOneScreenEast Commented Apr 22, 2023 at 21:41
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

For the spectacle app you can use the following shortcuts

enter image description here

You must log in to answer this question.

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