238

After 4 years of being a Mac user, there is only one thing that I still miss from the Windows world, and that is being able to switch with a single keystroke between all open windows in the computer.

What is the best app or utility, free or not, for accomplishing that?

I've used Witch, but I never was completely satisfied with it. It's a bit slow and the switcher UI is not very pretty.

Do you know any alternative?


EDIT (2016): This question keeps getting views and upvotes after 6 years. When I asked this question in 2010 I was still transitioning from being a Windows user. Eventually, I got used to Mac OS X UI and nowadays I don't use any third party utility for managing app windows, just Mission Control and the native keyboard shortcuts. So, although this question is no longer relevant for me I hope it is useful to new Mac users making the switch (Including this comment).

8
  • 3
    When is Witch slow? I've just started using it. Commented Sep 30, 2010 at 8:52
  • What about Exposé's F9 function?
    – molle
    Commented Apr 24, 2011 at 2:37
  • 1
    I think this might better written as just "Best app to switch between all open windows". So without the "alternatives to witch" part. That way witch could be one of the answers so it could be voted up/down and commented on relative to the others.
    – studgeek
    Commented Jul 1, 2016 at 22:47
  • 1
    @studgeek: I agree. Edited the question title. Commented Jul 1, 2016 at 23:36
  • 1
    Removing the edit message Commented Jan 2, 2020 at 21:40

15 Answers 15

129

Here's a list of all the options from this page:
["italicized & quoted notes are sourced from linked url"]

  • Mission Control and native keyboard shortcuts: +tab or +` (backtick)
  • AltTab ["macOS 10.12 to 12"] [$0 (free), open source]
  • Witch ["v4.3.8 requires macOS 10.10 Yosemite or newer"] [$14]
  • Hyperswitch ["Mountain Lion, Mavericks & Yosemite"; works on Sierra & High Sierra] [$0 Free] [window preview]
  • Contexts ["v3.7.1 Works on Mojave & Catalina"] [$9 after Free trial]
  • Optimal Layout [Snow Leopard or later] [$0 (free) but not currently actively developed]
  • Karabiner - ["macOS 11.0 Big Sur, macOS 10.15 Catalina"]
  • Senebier ["10.4 or later", last update in 2012]
  • Hammerspoon with hs.window.switcher [free and open source]
  • Command-Tab Plus ["macOS 10.12 or later and is fully macOs Monterey ready", 13.75 €]
7
  • Cmd+` only works for windows within the same space.
    – andresp
    Commented Jun 5, 2020 at 9:49
  • 13
    One vote for Alt-tab (installed by homebrew) on Big Sur + chip M1. Commented Feb 10, 2021 at 10:30
  • 10
    AltTab is definitely the closest you'll get to Windows OS multitasking. I have tried several of the options listed on this thread, but nothing comes close to AltTab in terms of simplicity and stability. Running smoothly on M1 MacBook Air.
    – chlboshoff
    Commented Feb 13, 2021 at 15:21
  • I use Optimal Layout for quick-maximizing or 'halving' windows for multi-tasking. And Hyperswitch for previewable window-switching. Commented Feb 14, 2021 at 23:42
  • 1
    AltTab is very similar to HyperSwitch while offering much more customisation and looking so much cleaner than HyperSwitch. Love it, thanks for the recommandation. Commented Feb 24, 2021 at 10:34
130

Hyperswitch is free and works well. It also looks nice.

Update: ...but unfortunately as of May 2021 the app is not being updated anymore and has no native Apple Silicon (M1) support.

enter image description here

http://bahoom.com/hyperswitch

16
  • 5
    Finally the solution!
    – Lumi
    Commented Jun 8, 2014 at 8:40
  • 9
    Holy crap i created an account on Ask different just to thanks @Paul for this one, finally found an app like this for free Commented Feb 13, 2015 at 14:20
  • 8
    Hyperswitch does NOT implement the window switching feature that has been most valuable for me on MS Windows: It does not allow to quickly switch between last-used windows. This is important for me as I constantly switch between e.g. editor and browser to control my work. I have many windows open in both editor an browser and with Hyperswitch I have to do many keystrokes to switch back and forth between the most recently used. I found that Witch solves that. The list of Windows to switch between is by default ordered by usage and I can easily switch between the most recent ones.
    – Jpsy
    Commented Mar 27, 2015 at 17:17
  • 2
    You are god! :)
    – Srneczek
    Commented Sep 3, 2015 at 16:33
  • 7
    @Jspy hyperswitch does that - I just downloaded the latest verison, maybe you have older one
    – Srneczek
    Commented Sep 3, 2015 at 16:38
40

I've been using AltTab, an open source application, with success.

AltTab brings the power of Windows’s “alt-tab” window switcher to macOS.

Alt-Tab is open source software that can be built & installed locally, or can be installed directly from its website or through Homebrew:

brew install --cask alt-tab
3
  • 1
    This is the only free option that worked for me.
    – andresp
    Commented Jun 5, 2020 at 10:41
  • Best answer! Still works! Commented Dec 17, 2021 at 9:00
  • I got the error: Error: brew cask` is no longer a brew command. Use brew <command> --cask instead.` When I tried brew install --cask alt-tab it seemed to work.
    – ThaJay
    Commented Sep 9, 2022 at 8:54
30

I'm guessing you're already aware, but for those searching the web there's always Ctrl+F4. No visual feedback, but it does switch between all windows for all apps (that are not hidden) with one command. Of course it's instant and so it doesn't reorder the list like ⌘+Tab does. I also got tired of Witch, but I decided that most of the time ⌘+` is all I need.

8
  • 1
    [⌘] + [`] "is all I need" - indeed! Commented Jan 9, 2014 at 14:19
  • 3
    The visual feedback is important for me and doesn't exist in ⌘+`. Commented May 15, 2014 at 12:41
  • 6
    And Cmd + ` doesn't work across multiple spaces.
    – GregB
    Commented Jul 22, 2014 at 19:39
  • 2
    And [command] + [`] with [command] + [tab] is annoying because they have two separate list-ordering rulesets. Commented Jun 13, 2016 at 1:00
  • 2
    WOW, I have been looking for this exact functionality for years. @worc You can remap it to Alt-Tab or whatever you want in system preferences -> Keyboard -> shortcuts -> keyboard -> "Move focus to active or next window"
    – Matt
    Commented Jul 30, 2020 at 16:35
22

https://contexts.co/

Contexts for mac is a competitor to Witch. As a long-time non-mac user looking for more intuitive window switching , I really like this app. It allows for switching between all the windows you have open, using your keyboard or your mouse.

There's also an optional side panel, which is somewhat a replacement for the Mac Dock. It can be configured to hide applications that don't have a window, and displays multiple icons for multiple windows. As such, irrelevant background applications are hidden and multi-window apps can be managed more easily.

If need be you can still use Apple's Native App-switcher (cmd+tab) to close/switch-to background/windowless applications without using the native dock.

6
  • @sergio I also had a good first impression of this app, any reason it doesn't work for you? May have been updated since you tried it.
    – Jay
    Commented Apr 11, 2016 at 16:42
  • 6
    For those of you reading this in 2016, Contexts is your solution. It works beautifully. Commented Jun 13, 2016 at 1:46
  • 1
    It's so slick and yet feature-packed I purchased it in under 5 minutes. Full Disclaimer: I am very tight-fisted normally ^_^
    – sming
    Commented Oct 15, 2016 at 12:33
  • 3
    It's almost 2020, last update is April 2018. Developers did not retweet back if the project is alive. Tab switching was planned as a feature, currently not supported.
    – Ev0oD
    Commented Dec 3, 2019 at 9:58
  • this is still my goto app for both in mojave for splitting app windows into separate entries in the stack and cmd-tabbing between them
    – worc
    Commented Mar 31, 2020 at 16:38
15

An app I developed, Optimal Layout (14$), gives you keyboard commands to quickly switch and re-organize windows.

4
  • That's just exactly what I was looking for. Thanks both for answering and for making the app. I'm currently evaluating it. I hope you'll have me as a new customer soon. Commented Sep 29, 2010 at 20:25
  • 1
    Optimal Layout is nice, I tried it, but I didn’t buy it because I already had my “muscle memory” tied to using the OS X shortcuts (which I’ve changed) and the Window placement handled by SizeUp. But it’s a very promising app! Commented Sep 30, 2010 at 10:00
  • I was using Optimal Layout for a while. I was using Witch, but switched to Optimal Layout for its ability to search the window titles. However, in the past few months I have found some issues and have not heard back from the Optimal Layout developer on them. The biggest is that it occasionally doesn't show some windows until I restart it.
    – studgeek
    Commented Jul 5, 2016 at 19:03
  • 1
    OptimalLayout is great. It combines window switching and window positioning, with customizable arrangements and shortcuts. I've had a couple of problems, though, and the developer has been unresponsive through the contact information in the application itself. I'm searching for an alternative just so I can use software that has support!
    – Trinition
    Commented Dec 7, 2016 at 14:14
15

For those who don't know it, Ctrl+F4, Ctl+`, ... can be remapped in: SystemPreferences=>Keyboard=>Keyboard Shortcuts=>Keyboard & Text Input

https://i.sstatic.net/CvV3k.png

5
  • 4
    I'll add, since some might not already know, that Ctrl-F4 can be used to switch between all open windows when "Enable access for assistive devices" is turned on in Universal Access.
    – NReilingh
    Commented Apr 1, 2012 at 4:14
  • This is the simplest way, without installing any extra software. Thanks!
    – poolie
    Commented Nov 21, 2015 at 16:28
  • 1
    @L0CKnL0aD7 this might be the answer for me, if for one thing: is it possible to make the window order be most recently used rather than when it was opened? Commented Jun 13, 2016 at 1:22
  • 1
    Cannot do this on "El Capitan".. any idea why? Commented Jul 18, 2016 at 12:20
  • CTRL-F4 is buggy in MacOS Monterey. If you switch from e.g. desktop 1 to desktop 2 using keyboard shortcut and then press ctrl-f4 it will switch you do desktop 1 and activate window from that desktop. Commented Mar 24, 2022 at 11:22
13

Command + Tab, combined with Command + `. Works great.

Let me explain:

  • Command + Tab : Switch between different applications.
  • Command + ` : Cycle between all open windows of the application you're focused on. (For example, if you have four Finder windows open, you can press Command + ` to move between the four windows.)

If this and other keyboard shortcuts seems to be broken, you probably have another keyboard-layout then US, The shortcuts actually aren't to the ` key but rather the key that would have ` on a US keyboard, to find what key this is on your layout, open the "keyboard viewer" and switch your layout to US, take notice on where the ` key is located, swich back to your normal layout and you can now use this button to switch windows.

On a swedish keyboard ` is the button next to 1 (§) on the small/laptop keyboard, and the key next to z (<) on the full size keyboard.

8
  • 7
    Thanks for your answer. I know about both shortcuts, but I'm specifically looking for a single keyboard shortcut solution to switch between all open windows. Commented Sep 29, 2010 at 18:45
  • 2
    Too bad Apple didn't think about keyboards where the ` key is not near the TAB key, and worse, where you need a modifier key to select it :-( Commented Aug 5, 2011 at 9:23
  • 1
    @Rabarberski Well at least in finnish locale (where the ` key is not near tab) the cycle-within-app shortcut instead uses the < key which is near the tab. Commented Apr 3, 2013 at 11:03
  • 8
    This is bad solution for people who work very quickly and want to switch back and forth, especially if the person has experience in Windows. The problem being that [command] + [tab] switches between apps which are ordered by order of use, and [command] + [`] has windows ordered by when they were opened. In other words, you have a deal-breaker of a problem: even if you have the wherewithal to be able to mentally switch between the two paradigms on the fly, there is no way to memorize the location of a window in your "mental" stack. Commented Jun 13, 2016 at 1:07
  • 4
    For instance, assuming I'm switching between two Word docs and a webpage, I have to discover and remember the number of [command] + [`] switches between the two documents (possibly two distances: doc 1 to 2 and doc 2 to 1) and remember that to switch between Word and my browser is a different keyboard grouping. In Windows, I just remember [alt] + [tab] or [alt] + [tab][tab]. Easy. In other words, my personal opinion is that there is a terrible user experience in OS X keyboard shortcuts. Commented Jun 13, 2016 at 1:09
9

I know it isn't a single keystroke but I like using the "App exposé" feature to navigate between the windows of the focused application :

  • ctrl + down arrow (or three fingers down move)
  • then left arrow or right arrow to navigate between windows (or click on the window you chose)
1
  • Thanks for answering!. It's been 5 years since I asked my question but honestly I still haven't found a 100% satisfactory answer. However, this is actually a very good suggestion!. I didn't know about that shortcut, and in fact it was disabled on my Mac. I already enabled it and will be using this to see how it works with my workflow. Commented Sep 21, 2015 at 14:40
3

Senebier seems to be a good alternative to witch and it's free. http://www.bicoid.com/app/senebier/index.html

2
  • 2
    Can you provide some more info on it please? Manual seems to be non-english and the movie demo is missing.
    – studgeek
    Commented Jul 5, 2016 at 19:04
  • this app doesn't seem to exist any more.
    – Christoph
    Commented Jun 18, 2023 at 10:21
2
  1. Quicksilver (or spotlight). You summon the App you are interested on, say Safari.
  2. Using Mission Control's Show application windows (you can assign a shortcut to this using the keyboard icon on the system preferences)
  3. Once all the application windows are being shown, you can type (there's no text field, you will just have to start typing) the title of the window you care. After a couple of keystrokes, your window will be selected.

At the beginning you'll be slow but as time goes by, you'll become pretty fast.

2

It's interesting - no one has mentioned Karabiner. it has ton of options for different things, the one I like called "Tab mode", where you can switch between apps by holding Tab key and using either arrows or HJKL keys (especially favored by Vim users). Tab+I to cycle through open windows of the current app.

I love Karabiner, it's the app that made me really, really hate Windows (occasionally I have to do things in Windows). However even with awesome AutoHotkey app I couldn't find a way to use keyboard there as Karabiner lets me on a Mac.

I encourage you to try Karabiner and explore vast amount of different options, trust me - it will change the way you use your keyboard.

1
  • 2
    Here's how to make ⌘-tab switch between windows in Karabiner: Under the "Change Key" tab, expand "Change Tab Key" (the 39th item), and enable "Command+Tab to switch apps within the same Space" (the 10th item). (I'd expect the item numbers to change in different versions, but those should give you some idea of how far you have to scroll down.)
    – Ben Kovitz
    Commented Aug 27, 2016 at 20:01
1

See also this question, where I posted the same answer.

I am surprised / shocked that nobody mentioned hammerspoon. Aside, it can do much more than just window switching!

From its webpage:

This is a tool for powerful automation of OS X. At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expose specific pieces of system functionality, to the user.

Using hs.window.switcher one just adds (as mentioned in the docs) to the init.lua

switcher_space = hs.window.switcher.new(hs.window.filter.new():setCurrentSpace(true):setDefaultFilter{})
hs.hotkey.bind('alt','tab','Next window',function()switcher_space:next()end)
hs.hotkey.bind('alt-shift','tab','Prev window',function()switcher_space:previous()end)

and one can happily switch between windows in the current space using alt+tab and alt+shift+tab.

EDIT: In case it is rather slow, try turning of thumbnails and set the animation duration to 0.

switcher_space.ui.showThumbnails = false
hs.window.animationDuration = 0
3
  • It still focuses all windows of an application when switching and is super slow for me.
    – Hjulle
    Commented Nov 4, 2020 at 14:42
  • @Hjulle you can turn off thumbnails and set the animation duration to 0. This should increase the speed (at least it did for me). I updated my answer accordingly. I haven't checked how to only show a single application window when cycling through.
    – Stefan
    Commented Nov 4, 2020 at 19:21
  • I switched to using the "alt-tab" application, which did everything I wanted. Thanks anyways!
    – Hjulle
    Commented Nov 5, 2020 at 13:24
0

As mentioned in the question, Witch ($14) is one of the first window switchers and, IMHO, still one of the best.

I suspect @Sergio (questioner) main concerns have now been addressed in Witch. I think its actually one of the better looking ones, with lots of options for tweaking appearance (including themes). It also feels very fast to me.

All that said, I am not currently using Witch because it doesn't support searching the window names. For that I was using Optimal Layout and am now trying out Contexts (which seems very promising).

2
  • The one feature Witch still doesn't have, and I really want, is the ability to start typing in the switching window to have it narrow down the list. OptimalLayout does this. I think Contexts does too.
    – Trinition
    Commented Dec 7, 2016 at 14:18
  • Witch now supports searching for both window and tab names. Commented Jan 1, 2021 at 23:10
0

Been searching for a mac window swapper that INCLUDES MINIMIZED WINDOWS for ages. Little did I know, the function was already built into Quicksilver, sitting under my nose this whole time. It's an action called "show all windows," which I've set as a trigger ( ⌘` for proximity to ⌘⇥).

Quicksilver comes to the rescue once more (as usual).

You must log in to answer this question.

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