Hacker News new | past | comments | ask | show | jobs | submit login
AltTab – Windows alt-tab on macOS (alt-tab-macos.netlify.app)
106 points by DerekBickerton on May 10, 2022 | hide | past | favorite | 141 comments



For Mac users asking "how is this different from the keystrokes I already have", this app is designed to give you Windows-style switching which is subtlety but fundamentally different from OSX-style window switching.

MacOS is app-centric, so you have a keystroke to switch between apps and a keystroke to switch through the windows of the app. Windows is window-centric rather than app-centric, with a unified window stack so a single keystroke (Alt-Tab) always takes you to the previous window, regardless of what app is responsible for that window. Repeated Alt-Tab's take you back through your most recently used windows, regardless of the Apps involved.

OSX users generally can't imagine not knowing what apps their windows are associated with, and Windows users generally can't imagine being expected to care what apps their windows are associated with.

The difference is largely a historical artifact of the Macintosh operating system not originally supporting "multitasking." When the Mac first came out, it could only run one application at a time. If you wanted to switch between a spreadsheet and a word processor you had to close one application and open the other. Then the concept of a "switcher" was invented, which gave you the sense that the Mac was running multiple applications because it could do app-to-app context switching behind the scenes to make it feel like you were running multiple applications simultaneously. All of this meant there was no OS-level concept of "the window stack" there was only an app-level concept of window history, and a separate OS-level concept of app history.

Windows launched after the Mac, into an era of slightly more powerful processors and better understanding of user behavior on truly multi-application devices. These differences led Microsoft to adopt an OS-level unified window history model. Apple undoubtedly discussed the idea, but even by the time Windows launched Mac users were fully accustomed to the Mac's windowing model and would have complained mightily at the conceptual switch had it been attempted then or at any other point in time.

The more time you spend in one ecosystem, the more natural its approach feels to you, because you adapt to your environment over time.


> The difference is largely a historical artifact of the Macintosh operating system not originally supporting "multitasking."

This is a nice story, but reading on it seems like you're saying that the way app switching works on Windows as the Obvious and Correct thing to do, and that the Macintosh way of doing things is nothing more than a choice that was made too long ago to change.

Honestly, that's absurd.

The Macintosh has a menu bar at the top of the screen which belongs to the foreground application. This is a reasonable place to put a menu bar, because it is easy to click on things which are at the edge or (better yet) corner of the screen. This is a perfectly reasonable justification for having a foreground application.

Windows places the menu bar inside each window. So there is no need for "foreground application", only foreground window.

That's all that you need in terms of explanation. The Mac puts its menu bar at the top of the screen, Windows puts it inside each window. There's no need to tell some story about how the Macintosh was created during a more primitive era of computing history, because that story has no explanatory power.


> This is a perfectly reasonable justification for having a foreground application.

Except when you start having multiple monitors. Then it's an utter mess, and I have no idea how the Mac-enthusiasts are putting up with it. And as far as I'm aware, most actually kind of don't - the few mac-enthusiasts that I know all use their customized setup that heavily relies on third-party-tools.


Using a couple of virtual desktops and "show all windows" is more efficient for switching between windows than alt-tabbing through a linear list. I can't speak for mouse people, but the trackpad gestures are very good for getting around quickly.


Been using multiple monitors with macOS for at least a couple decades at this point. I switch back and forth between macOS, Windows, and Linux regularly—so I don’t feel like I’m missing out on experiences from other OSs. My macOS setup is completely stock these days. I don’t see what the problem is, could you elaborate?


MacOS is built for people that use pointing devices, is not optimized for keyboard usage, it makes no sense for example to show Finder when you alt+tab even if is closed. If you use 2 active apps only and a bunch of background apps (a developer setup) it makes zero sense to show you these in alt+tab. This app is also configurable to decide which apps you show, not to add that will show a screenshot which is way better than an icon. This app, advertised here is godsend for Linux and Windows users that are forced to use macs at work.


What background apps do you have? When I'm developing on macOS, the apps open are, like, Chrome, Terminal, Finder, and some music app.


With window-specific menus, I can directly click on and open the menu button of another app/window without first having to focus it first to see the menu options. I find that to be more intuitive.

I have always been a windows user and my intuition was shaped accordingly. So to me that is the obvious and correct thing to do.


It's actually surprising to me that the behaviour you describes works as it does. I would expect the first click to focus the window, then a second click to be required to open the menu. Does that mean that, if you want to focus a window, you have to find 'dead space' to click on if you don't want some other side effect?


yes, on either MacOS or Windows, if you click on an area in a window that doesn't have focus that triggers some action, that action will be triggered.

There are exceptions on both platforms, games being common because of how they grab input.

I've long since gotten in the habit of using the title bar or window-resizing area to safely activate a window .. when I'm using the mouse to change focus.


Get ready to have your mind blown because a used-to-be common setup on the X Window system is to be able to fully interact with a window without having to bring it to the foreground. Great for terminals and a few other use cases. I still use it.


I find it faster to use the keyboard. On the Mac, I can switch to the browser or terminal and open a new window with cmd-tab and followed by cmd-N.


A stack of the most-recently-in-focus windows is more practical than a stack of the most-recently-in-focus apps.

The absurd thing to me is that macOS didn't adopt this simpler workflow model.

No one is trying to throw out the baby with the bathwater here. macOS is a very good OS. Windows does this one aspect better.


Only seen as such when coming from a Windows background. The Windows paradigm is maddening when approached from the perspective of someone who has used Macs for decades.


It is seen as such when both approaches are compared, point by point.


You assume the conclusion.


What's the connection between the menu bar and window switching?


On a Mac, you want to be able to switch the foreground application. This is what command-tab does, it switches the foreground application.


I'm on a Mac right now but I'm still having trouble understanding the relation. Say I want to switch the foreground application so I press command-tab, I get that, but how does that relate to menus being inside or outside the application?


Because the menu bar is associated with the application, not with the window. An open application does not need to have any open windows at all.


The concept of "an open application with no open windows" is a very OSX thing that other windowing OS's manage to avoid without effort or difficulty. There are lots of ways to represent background tasks, services, VPN's, etc, that don't require the concept of "an app without windows" in a windowing OS (and without polluting the app switching experience as other commenters have complained about).


Why are you framing "an application with no open windows" as an idea that should be avoided? It's a useful concept, especially when dealing with heavy applications that take a while to launch (perhaps with a splash screen). It's also not how truly background services are represented to the user; only temporarily backgrounded aplications use this paradigm. Stuff that's meant to almost always be in the background with little or no UI (eg. VPNs) generally don't take space in the Dock.

I think it's a lot more fair to say that other desktop environments lack an equivalent because they don't have a cohesive notion of "application" in the first place, though influence from OS X/macOS has been pushing other desktop environments in that direction (see eg. the evolution of the Windows taskbar)


Yes. Having applications running and immediately accessible without windows present is more than handy, especially as those applications (generally) take up essentially no active memory & cpu.


“Open application without windows” is not the same thing as “background task.” When I run PostgreSQL on my Mac, it doesn’t show up in the application switcher, because it’s not an application.

I find it convenient to be able to have an application with no windows. The big reason is for applications with longer startup times—unfortunately, something we don’t have a good solution for. The other thing I like about it is that I can close a document and create a new document without figuring out if I need to reopen the application after closing a document. Closing a window only closes the application for cases where that makes sense (System Preferences).


How does the file manager work on non-macOS in this context? That's probably my most common use case for an app with no (current) open windows.


Windows would just have you open the file manager app when you need a file manager window. No need for the "app" to be always open. To Windows users, it feels extremely strange to have an app that's always open that you can't close.


Windows Explorer is exactly this, so this behavior is not at all foreign to Windows. The only meaningful difference in how these two UIs expose this same behind-the-scenes behavior (in recent versions) is that on Windows you have the option of removing Explorer from the taskbar if there are no open windows, while macOS Finder is always present in the dock.


For current Windows I wouldn't say backend behavior of Explorer is very similar to Finder at all. The "always running" Explorer instance is more similar to the system menu bar+dock which are separate components and processes from Finder. The "file browser" Explorer instances are more similar to Finder but are transient, the process only runs and shows as a running app in the task bar when you launch it and ceases to when be a process when you close it. The start menu functionality itself shares some aspects with Finder but that's not explorer anymore.

In Windows XP days the behavior was very different and could be argued to be similar to any or all of those macOS components as Explorer was all of those things under one process for efficiency reasons.


That Windows Explorer is always running to show the desktop UI is something between an implementation detail and a hack. It could have been implemented as a separate program. And one can use a different file manager than Windows Explorer.


It’s not exactly that. It’s more like an application with two modes, with the application in one mode (the task bar mode) set as the shell. There is no instance of Explorer in file browsing mode open, waiting to show a window. You can even choose to have each instance of Explorer open in a new process, then kill them individually (including the taskbar) without impacting the other instances.


I find it very convenient, because I often have multiple file manager windows open, and it’s easy to accidentally close the last window.


Open windows or no open windows I still don't see how any of that says anything about the way the scope of the switcher works. There is no law of UI that says "an app with no foreground windows must not be switched to the same way via the same method as a window from another app would be".


On Mac, you can have an application open with no windows. In that situation, you have to be able to switch 'applications', not just 'windows'.


>On Mac, you can have an application open with no windows.

The exception to this is applications which can only display one window, such as System Preferences. Close that one window and the application will also be quit. As a lifetime Apple user dating to before the Mac, it's no issue for me, and I can understand the interface logic in play there, but to common users that logic is not apparent. I've seen plenty of average users who switched to Mac from Windows and they are usually baffled because to them the idea of "Xing out the last window" should always means the application is now quit.


There isn't a relation.


There isn't one. The two are orthogonal.


this is actually quite an objective matter, most humans think visually and they will create a mental map of the WINDOWS in their mind, not the APPS. So making the subject of the action an abstract thing they can't see (the app, sometimes) would be the absurd thing.


Exactly. When I have some files open, I don't actually care what the application is. I don't care to keep a hierarchy of the owning applications in my mind. Whether a docx file opened in Word, Libre, Pages, TextEdit, or whatever... that doesn't matter. The file/document is the context. The application which opened it is just an implementation detail in the "app" paradigm.

I may have chosen the applications on my machine for many reasons, but ultimately I want to switch between files/documents because they are the real context. The rest is noise.


> Windows launched after the Mac, into an era of slightly more powerful processors and better understanding of user behavior on truly multi-application devices. These differences led Microsoft to adopt an OS-level unified window history model.

Yet Microsoft seems to be walking away from this model.

The Windows Taskbar was built on that, but has since diverged quite a bit from that model. The Windows 95 taskbar originally showed one entry per Window, until Windows XP started grouping Windows together when the Taskbar gets too crowded. Then Windows 7 started hiding the labels and made the Taskbar into a combined program launcher/window switcher, which now made the behavior of clicking on the icon itself very inconsistent, depending on the state of the program:

- when no instance of the program is running - shows the launching program animation and launches the program and brings the window on top

- when program has one window minimized - shows the unminimizing animation and brings the window on top

- when has one window not in focus - brings the window on top

- When program has one window on top - shows the minimizing animation and minimizes the window

- When program has multiple windows - opens the Taskbar Live Preview


As a former Windows, but now Mac, user I find Mac's system to work just fine. Especially once you learn that cmd+~ switches between the current app's windows. Plus, 4-finger swipe up shows all the current open windows.


I wish window switching worked in the same way as app switching, though. The former acts like a stack while the latter acts like a queue - I have no idea why.


I’m in the same situation. I open new browser windows all the time, to display information on one screen, and interact with something in a browser, on another screen. Having to switch the keyboard shortcuts up because certain windows are owned by a different app is quite jarring. Most of the time I just want to go back to the window I was last looking at, regardless of which app it was.


You can also use the up/down arrow when you have the app switcher open to drill into the windows for that application.


Works fine until half your "apps" are actually browser windows, and exhausting trying to remember which key do you use based on which app you need to switch to.


Or terminals.


Windows launched after the Mac

Only by a little bit of time in some regards; for Windows 1.0 Microsoft first presented it to the public on November 10, 1983. The first retail release, originally slated for release in April 1984, Windows 1.01, was instead released on November 20, 1985. System 1, the classic Macintosh System Software was released in January 1984.

Also, yes, the Lisa was arguably the first to ship with the Desktop graphical interface most like the Macintosh prior to that even.

I'd posit that both Windows and Macintosh graphical user interface designs started around the same time effectively due to the market and depending on whether you were in the education or business sector, you could perceive the pervasiveness of each wildly differently.

I personally believe the Macintosh designers' early choice to heavily lean on skeuomorphic designs and its popularity in the nascent Desktop computer publishing industry reinforced the architectural multi-tasking choices made early in its development.


Windows 1.0 was technically a thing but as you probably know the thing the rest of the world thinks of as Windows didn't really launch until Windows 3 (and arguably didn't really fully ship until 3.11)


Sure, but for some odd reason, I happened to be attending a school in the Midwest where Windows 1.x was in use fairly early on. Of course, that same school district also had computers running CP/M, some Apple //s, and Macintosh computers.

I agree though that Windows probably hit its market stride around 3.x, especially with Windows for Workgroups which brought serious competition for Novell.


The biggest annoyance for me on MacOS is that apps that I need to leave open but don't have windows open still show up in the switcher. When I'm on my work laptop, I still have to tab through Finder, the VPN app, etc. he rare times I need to work on the Java part of our codebase, I use the ssh remote beta for Intellij, which seems to open something called "Gateway", which is totally reasonable except that it adds yet _another_ entry to the cmd-tab menu. At this point, almost half of my cmd-tab menu is stuff that doesn't even have windows open. Back when I used MacOS more I had used something that I had gotten from the App Store way back (I think it was called "Witcher" or something), but with all the management software that the company has running in the background, the system already lags a decent amount every now and then, so I don't really want to add any more stuff for the management softwware to take up CPU time scanning. (I recognize that last part isn't specific to MacOS, but I can't help but feel like a user friendly OS would have better options built in specifically for cases where customization might not otherwise be desirable).


I think a big part of this is just the fact that desktop is overall not a priority these days for anyone. The app developers could easily enough prevent their app from showing up in the switcher, and there are apps that do that—like Quicksilver, Display Menu, etc.


It's pretty easy to quit the Finder if you don't need to mess with files graphically [1]. Once you've set that you can also use cmd-q to do that when you're cmd-tabbing through apps (if something else re-opens it).

1: https://www.howtogeek.com/259378/how-to-quit-the-finder-in-o...


Floating toolbars were an interesting flourish to show off the capabilities of GUIs (Photoshop being the most famous application to take advantage of this). And with floating toolbars, the application switching model made sense. But when virtual desktops landed on the Mac, it was a ridiculous hassle to move an application to a new desktop because there's tonnes of windows to move around. Now various programmes that used to use floating toolbars have moved to use main windows that hold all the toolbars (Photoshop being the most famous application to have done this).

With multiple monitors more prevalent now, the application switching model is definitely broken. Command-tab raises all windows for an application across all monitors. This is super annoying.

I mean, even Gnome gets this wrong but at least there's a toggle to fix it. I hope Apple can come to terms with this and fix it some day.


I appreciate your detailed explanation, I came to the comments for exactly this reason. “How is Windows ‘Alt-tab’ any different”.

I hate to say, I’m still not following you :) I have spent plenty of time developing of both Mac & Windows systems. I still can’t think of any difference in behavior.

What you said In Windows ”with a unified window stack so a single keystroke (Alt-Tab) always takes you to the previous window”, this is the same on Mac. A single press of “Cmd-tab” always goes to the previous window. So if you press it, release & repeat, you will just keep toggling the same two windows. Same behavior.

Mac, as you mentioned gives you an extra layer, where you can cycle windows of the same App ‘type’ with “Cmd - `”. Which I find very useful, and actually miss when I’m on Windows.

What am I missing? “Alt - tab” & “Cmd - tab” have the same behavior, no? Then Mac gives you the extra “Cmd - `”. Why would I want them Windows behavior? Maybe I should just download it and try for myself haha.


Let's say you have Firefox and Chrome open, each with two windows. alt+tab on Windows cycles between all 4. cmd+tab on Mac cycles between each apps most recently focused window.

Hold cmd and press tab on a Mac, notice that it doesn't even show windows, it shows app icons.


Note that you also can cycle between any window with command-tab. Press command-tab, and while holding command, press up or down arrow. This will drill into the windows for that application and let you select a specific window, without first bringing that application to the front.


Oh, nice tip! I didn’t know that one.


Ahhh… okay I get it now. I’m a little slow sometimes :)

That’s a good example. So “Cmd - tab” brings all the windows of a particular app to the forefront, but shows the most recent, while the others are ‘buried’. Then requiring the “Cmd - `” to dig out the older ones.

Yeah it’s subtle, but I see the difference now, thanks for setting me straight!


> but shows the most recent

Apart from when, due to a bug in recent macOS, it brings up a different window. Which is incredibly frustrating.


I was one of the mac users that made that comment -- my point wasn't that this application isn't useful, it was that the landing page doesn't even try to explain why its useful.


Some feedback from a mac user (if this is your project): The only description of the functionality on the page is "brings the power of Windows’s “alt-tab” window switcher to macOS." As someone that hasn't used Windows in years, this doesn't actually tell me anything. What does this do that command-tab and command-` don't already do in mac?


It enables you to actually switch between windows, not between applications. If you have 3 windows of Chrome open, on Mac if you alt-tab to it it raises all 3 windows to the top of the desktop window stack, hiding any other windows which may overlap with one of these Chrome windows. This is very inconvenient if you want to be able to still see another window, say, TextEdit, you have open but it becomes hidden by Chrome window 2 you don't care about that got raised to the cover the TextEdit window merely because you switched to Chrome window 1. Switching directly to one single window is very clunky on MacOS by default.


Command-tab already does this. Just keep holding command, use the up/down arrow to drill into the windows for the selected application. Play around with it you’ll figure it out.

It looks like this tool just simplifies it and gets rid of the hierarchy, so you don’t have to remember which application owns the window you’re looking for.


Doing that just brings up that app's exposé for me.


That sounds really useful, but I've tried every combination I can think of, and tried to read documentation, but I can't get my Mac to do that.

I press command+tab, keep holding command, and then press up or down arrow, and the list of application icons just fades from view.

Any chance you could point me in the right direction?


It might already do it if you hit up and down arrow, but my muscle memory and preference is windows-style. As someone who switches between the two often, I just want consistency and prefer the windows approach.


It eliminates the hierarchy of windows being necessarily part of an application. Alt-Tab on windows shows only open windows ordered by last time as the focused window with no grouping by application.


It doesn't really eliminate it because you are still going to have to switch modes to navigate a tabbed interface within a window.


I started using this to provide customization rather than being Windows-like.

It's pretty customizable, so everyone's experience and preferences will be different but here are some of mine.

1. Command + Tab > Cycle all windows, within all spaces, on active screen (rather than all screens).

2. Command + ` > Same as above, but only for the focused/active application.

3. Customized size of thumbnail, font, items per row, and overall screen real estate.

4. Mouse location = active screen

5. Hidden windows show at the end of the cycle


Pretty sure this also doesn't bring windows to the front when selected, either.


One absolutely huge limitation of macOS (IMO) is that cmd-` doesn't let you switch to windows on other workspaces. That means, if you have, say, one terminal window on one workspace and one on the other, there's no easy way to switch to the terminal window on the other workspace.


This is very subjective matter and any of us would like our own customized desktop. You probably organize your workspace in a different way than I do. I associate virtual desktops with customers on my Linux machine plus one for me. (Those should be workspaces on a Mac.) I have one terminal open in every desktop, one editor window in every desktop, one Firefox window in every desktop plus whatever I need for a given customer. I really don't want to alt tab to windows in a different desktop. It has no purpose in my setup because I want to stay within the boundaries of the customer I'm working for. I'm pretty sure this is the default behavior but I can bet there is a way to tweak it. Plenty of extensions to customize the GNOME desktop.


Use cmd-tab, and while holding command, press up/down arrow on an app. This will show all windows open in that app, regardless of workspace. Minimized windows will be at the bottom.


I switched to the Mac about 10 years ago. The biggest pain point I haven't really been able to solve (before this app) is switching between 2 specific windows in 2 different applications. On Windows this was as easy as ALT+tab

Perfect example, I'm looking in Safari, and entering some numbers in Excel. I have multiple windows open for each app. I'm in Excel, and CMD+tab to switch to Safari, and all the Safari windows come forward, coving up my Excel window. CMD +` only cycles the windows of the current app. There is no easy way to bounce back and forth between a specific Excel window and a specific Safari window. Instead I have to Hide or rearrange my windows so that switch apps doesn't complete cover the windows I want to see


I use this in combination with my rcmd app (https://lowtechguys.com/rcmd) and I can finally say I’ve reached the perfect app/window switching setup on macOS.

Instant app switching with rcmd + visual window switching for multi-window apps like Xcode, Sublime Text etc.

It’s similar to what I had on Windows with WinKey+number and their integrated AltTab thumbnails but better since I don’t have to count the apps in the taskbar to know which number to press, and I can AltTab only through the current app windows if I want.


Woah, rebinding the right command key. I'll need to retrain my brain to get used to it, but this is really, really cool. Thanks!


It was a pretty much useless key for me at first, but seeing how highly accessible it is for my right thumb, I prototyped rcmd in a day. I got used to it very fast. My colleague also got used to it in the same day, so we thought to share it.

Most people trying out rcmd tell me that in less than a day it has become something they can’t go back from so it feels pretty nice to know I’ve improved at least a few workflows ^_^


I wish something similar to Autohotkey was available for mac. Karabiner comes cloes, but it's not quite the same thing.


How about skhd? https://github.com/koekeishiya/skhd

I use it to simply bind hotkeys to shell commands in a single config file.

Given the full power of the shell, you can even use AppleScript (through osascript) if you want to automate the UI/system like AutoHotkey does.

It can also send key events using the -k flag so you can remap keys to other key combinations.


I haven't used Autohotkey or skhd but I use hammerspoon for any kind of macos UI automation and it's pretty great, and uses lua instead of applescript.


Oh yeah, Hammerspoon is a much better alternative to AutoHotkey, how could I forget about it.

It can even create simple and quite useful UIs, here’s an example of someone using it to create a stack visualizer for the yabai window manager: https://user-images.githubusercontent.com/1683979/90967233-0...

[1] https://github.com/AdamWagner/stackline


given this isn't free anyway, you could have both behaviors with a single app Witch (https://manytricks.com/witch)


Oh wow, this is great! I have tried other window-based application switchers but never really liked how they worked. I understand that macOS has a app-centric model but I find that switching between windows works so much better for me.


This is cool but as a long time macOS user who is now on Windows at least half time, I really miss Cmd + Tab application switching when on Windows.

Anyone know of a way to get that behaviour in Windows?


If you pin (you don't have to) an app to the taskbar, you can hit [Win] + [index num] on the keyboard and it switches to app at that index. Keep hitting the num key and you switch between the windows of that app.

Pinning the app will assign it an index (the icon won't change position) so you can switch to windows of your editor with Win+2 and windows of file explorer with Win+1 without even looking at the taskbar, for example.

Here's a detailed description from HowToGeek[0]:

> Press the Windows key along with a number key to launch the corresponding app. On the taskbar above, for example, Windows+3 would launch Google Chrome, Windows+4 would launch Slack, and so on all the way up through Windows+0 for Outlook. Using these keyboard shortcuts on an app that’s already running will toggle the app between a minimized and maximized state.

> You can also hold down Shift while using those shortcuts to launch a new instance of an app that’s already running. In our example, pressing Shift+Windows+3 would open a new window for Chrome, even if Chrome is already open.

> Using the Ctrl key with those shortcuts displays the most recently launched instance of an app. For example, say you had three File Explorer windows open on your PC, and File Explorer was in the first position on your taskbar. Pressing Ctrl+Windows+1 would show you the File Explorer window you most recently opened.

[0]: https://www.howtogeek.com/276982/the-most-useful-keyboard-sh...


Thank you for this. Have been trying to train my brain to use it for weeks, but as I'm sure you know, the limitation is I have to maintain context of what app I'm using when wanting to window switch whereas a global shortcut a la Cmd + Tab eliminates that bit of overhead.


Context: Cmd-Tab in macOS switches between the foremost windows of open applications (i.e. never between windows of the same app).

I don’t have a solution for you, but if you used the complement feature cmd-` (switch between open windows of the currently focused app) I did implement that for Windows: https://neosmart.net/blog/2017/easy-window-switcher/


> Built-in ⌘ command + ⇥ tab: Only shows apps, not windows (note: can press down to see window of selected app)

I've never actually needed to use it, but that sounds like the default can do this without taking your hands off the keyboard?


That’s right but it’s not possible without taking your hand from the mouse since you need to put your fingers on the arrow keys. I know that everyone is rather keyboard-centric on HN but some tasks require mouse usage. Also it’s a simple left hand task on windows, I’d need both hands to reach the same result.


Looks great! I've currently use https://contexts.co/ but might switch over for the thumbnails


A recommendation, apropos of this discussion on window management: three finger swipe up on the trackpad for Mission Control/Exposé if you need a specific window. I know trackpads are below most programmers but I’ve found this is faster than hammering alt-tab on Windows if you have a lot of stuff open. Still use Cmd-tab and Cmd-` most of the time though.


You know you can click on the window you want while holding Alt+Tab, right?


Yes, but I still prefer Mission Control. Possibly because I think in terms of apps, not windows.


Have been using this for a few years and the most amazing usecase is being able to switch between multiple chrome windows, just like windows used to let me do "same app, different window instances", with a preview!

The other thing that works well with this for a life upgrade on a mac is finicky (GitHub.com/johnste/finicky )


I paid for Witch and have been pretty happy with it [1]. Only issue is very occasionally the MacOS switcher and the Witch switcher both appear and fight for control.

[1] https://manytricks.com/witch/


I assign them different activation keys. I use option-tab for Witch and cmd-tab for the built-in switcher.


I recently found an old app called Snap which automatically assigns apps to Cmd + number depending on their order in the dock (or you can manually assign them).

I have Chrome as the first app in the dock, so it's Cmd+1. Slack is second and is Cmd+2.

It's so simple. I love it. I tried to achieve the same with Automator but it was unreliable.

https://apps.apple.com/us/app/snap/id418073146?mt=12


Wow, this was last updated in 2012. That's pretty incredible if it still works – the dev won the "no breaking changes in a decade" jackpot in API pachinko.


hold command press tab

press the up arrow

let go of command

press tab to cycle through windows in their size as they originally appeared, preview and all


Am I huge fan of i3wm, but have to use Windows for my job (which is not a tech job in any way). At a certain point I realized that Alt-Tab for switching and Meta-Left/Right for the half screen tiling is totally fine and pretty much all I need to get a sufficiently familiar flow. I still keep i3wm on my personal laptop because its a much smaller screen.


How is this different from Contexts?

https://contexts.co/


I wrote the opposite: an implementation of macOS’ cmd-` (switch between open windows of the same application) for Windows: https://neosmart.net/blog/2017/easy-window-switcher/


I use a keyboard mapper (better touch tool in my case) to configure Option+Tab to switch between windows of the same app. So I am constantly using Command+Tab and Option+Tab all the time, I think I could never come back. I also did not understand what this app brings, is it a preview of those windows?


Command-` does this natively: cycle through windows of the active application. Note that on an ANSI keyboard backtick is right above Tab so it makes sense from a layout perspective.


Lol you are right. Didn't know. I'll stick to my solution though now that I got so used to. I also have a few other nice shortcuts like:

option+< and option+> to resize window to left and right, and option+p to maximize. And also control+j and control+k to switch tabs in browsers and terminals.

Probably there are also native shortcuts for that, but I like how I can make mines consistent across all apps.


However, Command-` does not work across desktops, while this app does. That’s my main reason for using it.


This app is designed to give you Windows-style switching. MacOS is app-centric, so you have to switch to an app and then switch through the windows of the app. Windows has a unified window stack so Alt-Tab always takes you to the previous window, regardless of what app is responsible for that window. Repeated uses Alt-Tab takes you back through your most recently used windows, regardless of the Apps involved.


Thanks for the advice, I frequently struggle with cmd+` since I have to use both MacOS and Linux regularly. Actually to remap cmd+` to option+tab there is no need to use any third-party apps, the settings (at least in Monterey) are available under System Settings->Keyboard->Shortcuts->Keyboard->"Move focus to next window".


This is great! Coming from Windows I am always annoyed when cmd-tab does not restore a minimized window in MacOS. I don't really understand the logic of it. If the app window is minimized it is obvious (to me) that it should be restored when I cmd-tab to it. Why doesn't it do this?


cmd-tab to the minimized window then hold option(alt) before removing your finger from cmd will restore a window (or create a new window if none are available). I don't know if it's documented somewhere, which is a real shame because it's not obvious, but I guess that's been the behavior since Leopard (10.5).


This is nice. However, once Alt-Tab is activated, it would be nice to be able to hold Alt and use the ` key to cycle through windows from right to left, instead of left to right (same behavior as Command-Tab on MacOS).


Press shift !:)


Seems many people don't know:

⌘ Command + ` to switch between windows of same program


I already posted this in response to another comment but you might be interested to now that I ported that functionality to Windows: https://neosmart.net/blog/2017/easy-window-switcher/


That's not comparable to what this utility does (and it also supports Cmd + ` and does it better than built in MacOS behaviour).


Anyone know how get Focus-follows-mouse to work in MacOS?

It kind of works in the terminal, but only partially, and not in any other application.


I use HyperSwitch, by the creator of HyperDock, for this purpose. I switched to Mac for my job.


I used to use HyperSwitch, but it has bugs and doesn't work on all applications for some reason. It also doesn't work on M1 macs if I'm recalling correctly.

Made the switch to alt-tab, and glad I did.


The more I use macs, which I'm forced to at work, the less I like them and the more I feel like Apple just really hates their users. They want to dictate how you use these and what it looks like. (I.e. smart quotes.. as a dev that fucks up everything, alt tab, annoying normal user interactions alternatives)


What about the F3 key on a Mac, this let's you see all Windows and choose one..


Last time I tried doing that, it didn't even keep windows in the same place, breaking spatial memory. Is that still the case?


You're right.. That seems to be the biggest difference with this Alt-Tab solution.


Wait what, macOS doesn't have any built in equivalent?


No. There is no way to get MacOS to be able to switch between open windows on a desktop via a keyboard shortcut without installing 3rd party software that adds this basic functionality.


Cmd-tab, and then while holding command, use up/down arrow to drill into the windows for a specific app. I realize that this is not great if you need to switch back and forth between the same two windows over and over again.


not true: ⌘ Command + `


This only switches between windows of the same app. On Windows, with Alt+Tab you switch between all of the currently open windows of all applications.


Nope, that doesn't do it. If I have 2 Chrome windows and 3 terminal windows and 2 text editor windows open on MacOS, there is no way to merely switch from a Chrome window to a specific terminal window. You have to switch to the terminal application, which raises all 3 terminal windows to the top of the window stack on whichever display they are on, then switch between terminal windows. To enable the basic feature of switching directly between windows, you have to install 3rd party software.


I get with keyboard only to a specific window without any 3rd party app this way... I think the question is solved in a way (not saying it's the best way)


Not quite. That will switch between windows of a single app.

The AltTab thing here will switch between all windows of all apps.

I actually like having them separate like OSX does it, even though I'm generally a Windows guy.


I don't think this affects minimized app which is another annoyance


The Mac has its own key commands for switching between windows. Cmd-Tab and Cmd-`.

It does not have a key command that is 100% identical in behavior to Alt-Tab.

That bugs some people, it seems.


Yup... I tried macOS for a few months... first thing I went looking for (well, second after switching command/alt or whatever it is).


as I'm using mac fulltime I have to do it the other way, in my window any linux machine I map their Ctrls to the Meta key. There is a program called kinto that does it.


⌘ Command + `


Thanks so, so, SO, much for creating this!


What's wrong with Command + Tab?


It's inefficient after a decade or more of AltTabbing in Windows becomes a muscle memory that is thought-flow breaking when having to un-train that automatic keyboard reflex.


It switches between applications, not windows.


Nothing's wrong with it, unless you prefer alt-tab to switch windows. I personally prefer to choose my own adventure.


Imagine you’re on a German keyboard and want to switch between Firefox windows. In that case I need to do cmd + shift + ` which need two hands since ` is in the upper right corner. That’s the only use for me: switch between windows of the same app easier.


you mean ⌘ Command + `




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: