Neat idea. I'm sure this will solve some friction for the neuroscientists/mathematicians out there with ~20+ windows open.
Personally (as someone with ADHD), this would just relentlessly grind my gears. My thoughts are unpredictable by nature and so I value the "reliability" of knowing my chrome is two alt+tabs away, etc.
If an algorithm started messing with this and changing throughout the day... Damn, I'd go crazy.
I similarly would have issue with the non-deterministic behaviour. I use space hammer and bind many apps directly to a dedicated chord each, so I know that (hyper)-b is browser, t for terminal, s for Spotify (or songs) etc.
Thanks! The long term goal of Smart Switcher is that the algorithm becomes reliable enough that window switching almost always requires only one Alt + Tab press. It's an ambitious goal that will require a lot of work, but that is the goal.
I need this combined with eye tracking so that I can switch the focus to what I am looking at. If it was a macOS app, I would definitely pay for it. Especially if it was a one-off fee of $50 or something like that.
Funny, this sounds like a good idea, but I'm quite happy with the exact opposite: I use rcmd[1]. I hold down the right command key and press the first letter of the window name to switch to it. I can override this dynamic mapping by pressing right command + option + <other key>, so I have an IM client on I, for example. It means I never have to remember/guess how command+tab works (although I had fewer issues with alt+tab on Windows)
Cool, but how does it work if you have multiple windows in one app?
I used hammerspoon for something similar, but it worked on the window title. So, I could add custom titles to my chrome/iterm/code windows, and switch by pressing a shortcut and then typing 1-4 letters to match the title. It was my favorite window management UI for my work laptop with an absurd amount of tabs open.
For those who do try the demo or trial version, or purchase the full version, if you want to take a more active role in providing feedback, you can email me at hello@aboveaverageuser.com.
I like the idea of focusing on one window at a time with keyboard shortcuts for getting around quickly.
I feel like the only predictable workflows are when I'm cycling through N windows repeatedly. Tabbing works great for N=2 already due to reorganizing the list so the first element is always the previous window. But N=3 or 4 and maybe 5 are also common for me and kind of annoying with tabbing. Of course I don't know how predictable those are either, they're annoying to tab because the patterns are almost regular but also have frequent exceptions.
I am sorta talking myself into wanting normal tabbing alongside a browser style forward/back (which would NOT reorder the alt/cmd tab list). That way once I have my N windows as most recent, it's all back/forward navigation and the path to each window is something I would remember for the session.
I switched to a tiling manager (I use Hyprland). There are no floating windows, I have multiple spaces I can easily switch to and if I need to temporarily switch a window to full screen it's really easy. Because of that I don't spend any time at all looking for the window I want.
For me, Alt + Tab was always almost good enough. I find the shortcut itself to be a good experience but as you said, it's annoying tabbing through the window list. The idea with Smart Switcher is that you wouldn't need to override too often so it ends up being less keystrokes then tabbing through the window list.
Without having tried this, I'd say the problem with a predictive algorithm is that it is (ironically) impossible for the user to predict what will happen.
So after switching, they will need a short moment to reorient: understand where they were taken, check if it matches where they wanted to go, and then either switch again or stop the switching process to resume work. In UX design, it's better if you can complete a longer process without having to halt and reorient many times in the process (like opening a menu that was hidden and wait for a loading animation to complete, until you can actually read the menu items are).
If it's impossible to keep a mental model of where you are in the system, and how you can move to another specific window, then actually EVERY window switch requires much more effort and conscious thought.
I think windowing systems, virtual desktops, spotlights, stage managers, exposés, mission controls, are all too complicated... I don't know what the solution is, and I think it's great that people are working on novel solutions. But I do know I want to easily switch between 2-4 windows without the order randomly changing.
I have a very similar frustration with the complexity here, and found that scrolling tiled window managers (like PaperWM, Niri, etc.) might actually be the answer. All your windows are in a line, press the shortcut until you hit focus the one you want. Reorder with a shortcut or with a mouse.
The main problem with them is system support, they are buggy when tacked on top of a desktop OS (PaperWM), or require a pretty finicky custom setup (Niri).
I completely agree, a lot of the existing solutions are too complicated. I just want to be clear that once you use the override shortcut, the algorithm won't have any effect on the your switch order. When you are ready to switch windows, if you use the switch shortcut to switch from window A and it takes you to window B (because this is that the algorithm predicted) but this isn't what you wanted, you would press the override shortcut to go to C instead. Now because you have an override in effect for A, every time you switch from A it will take you to C, unless you use the override shortcut again.
This! I actually kinda miss the Win7 enhanced switcher (I actually kinda miss the whole Win7 Aero desktop, but I digress) ... Win-Tab bringing up a scrollable stack of the actual windows you have open and being able to either directly select the one you want or just keep Win-Tabbing through them. The Win10 tiled view is similar, but lacks the charm somehow...
At least for the last three or four windows, I would want strict LRU behavior, because that’s automatic muscle memory. I could see a “smart” heuristic be potentially useful for less recently used windows, although I have a hard time imagining how that could be significantly predicted from prior use.
This actually works fine a lot of the time. There are just cases where that isn't the window I want to switch to. I wanted to find a solution that would cover more of these cases. One example is when my computer starts I have a some applications that automatically run. I don't want to tab through the Alt + Tab list to get it in the right order, I want it to be ready to go.
The algorithm started off by using one of those more simple methods and has evolved a lot since then. I'm exploring a few different directions now. It's difficult to say what will be the best direction to take it in until I have some more data to see what's working. I want to make something that works well for a lot of different types of workflows.
Sometimes I want to switch between multiple windows quickly, or even toggle between them. Having two keys - alt+tab - allows me to enter the "window switching" state by pressing alt, while tab increments the selection, and shift+tab decrements (all while holding alt down). I leave switching state when I release alt.
Alt+tab is an optimal controller.
Maybe operating on the order of items in the queue, and use your prediction to sort windows, allowing faster selection? Even that disrupts sense of place - I know what applications I have open and where they are, and if I'm using alt+tab over 5 or more, I know the order in which I've opened them, and "where" I need to go to navigate to them.
There are second and third order impacts to changing interface behaviors, so the superficial benefit you might gain will be lost by creating friction at different levels.
A single key is insufficient for granular control, and no AI widget short of human level AI is going to capture the edge cases, which will create friction, at which point I will aggressively remove the offending piece of software.
I'd go back to the drawing board and work on a more complex model of window switching and all the ways in which people use alt+tab, and see if there's a use case for your idea at a different level. As it is, for me, it would interfere with a reliable and predictable interface, and I would be very unhappy.
Having to iterate through your windows is not optimal. I use sway, with windows divided across workspaces. So if I want to switch to my web browser I hit super+1. If I want to switch to my code editor I hit super+2. If I want to switch to my terminal(s) I hit super+3. I use 4 through 0 for other random windows (for example, I usually launch games or videos on 0. If I'm working in two code bases I generally put the editor and terminal for the 2nd code base on 4 and 5).
Standard out-of-the-box Windows behavior: quick Alt-Tab press switches between last two windows; pinned apps on taskbar are switched with Win-1..9 shortcuts.
I don't understand why people like to navigate their windows temporally.
Super+h/j/k/l (left, down, up, right) to move focus spatially feels much more natural, given that you can know at a glance which window is to the left of yours but they typically give no indication about whether a window is the 6th most recently touched or the 7th...
I can't imagine wanting this. When I press ALT-Tab or SHIFT-ALT-Tab I can see most of the Windows I have open, and can get to the one I want quickly. The last thing I want is some algorithm showing me a next/previous window that may have nothing to do with where I'm headed. How would I be able to predict where it would send me so I can reliably know how many key presses I need to make to get there?
An interesting idea, but not something that would fit my workflow for several reasons (not the least of which is it's Windows-only).
Cmd-Tab on Mac and Alt-Tab on Windows does the same thing every time. Its consistency lets me use it extremely quickly, with confidence. It does what I want it to, every time. I don't wish to sound dramatic, but if I hit a shortcut with a window in mind, and this app picked the wrong window even once, I would uninstall it immediately. "Cmd-Tab, but it doesn't work sometimes" sounds frustrating and strictly worse than the system shortcut.
Maybe it should look more like GitHub Copilot. It watches what you're doing and shows a small indicator somewhere of the window it thinks you want to switch to. If the app guessed right, you hit a keyboard shortcut and switch to it. If the app guessed wrong, you just ignore the suggestion, like with Copilot.
Uh.. it does not? Alt+Tab on windows switches all the windows, indiscriminately. Cmd+Tab on osx only switches between apps? If you have two Firefox windows on osx, you need Cmd+~ to switch between them, when you have finally reached the Firefox app through Cmd+Tabbing
I am aware that Microsoft and Apple have implemented fast window-switching slightly differently. I use both OSes daily. The point I was making was both make similar high-level design decisions.
When you begin alt-tabbing, you cycle between your other open windows, arranged by how recently they were last open. Cmd-Tab is the same, but between apps. Both features rearrange items only based on recency, and always keep the same order.
Never understood tiling managers. I want the primary thing I'm working on to be right in front of me, not all over the place. So my IDE might be in the middle of the screen, and a browser might be on the side. But as soon as I want to spend more time in the browser I just move it to the middle, obscuring the IDE.
The answer (for me):
1 thing per workspace most the time. maybe 2 things side by side on a landscape oriented monitor or 2 things on top of each other on a portrait oriented monitor.
And:
2 or 3 monitors.
"I want the primary thing I'm working on to be right in front of me, not all over the place." is exactly why people use tiling window managers. The screenshots where people have dozens of apps all shown on a single monitor are mostly memes or to flex their uncommon layout engine.
I have a tiling window manager, I never use the tiling feature, I only have one window per workspace like the previous commenter. Alt+1 is always my browser, alt+2 is my code, alt+3 is slack, etc. Switching to the desired app doesn’t require thinking, and certainly no AI
Similarly, I fixed window management by upgrading to a big enough 4K screen I don't need to scale it up to see it.
I just place windows wherever based on what feels right at that moment. I haven't minimized one in years.
Two windows side by side makes them both too large to be practical. I'd have to get creative enough tiling them I never bothered. We don't tile the papers on our desks either, nobody complains.
Browser? Probably front and center. Chat window? Somewhere in my peripheral vision. If I'm doing a lot of things, I might move some windows over to another virtual desktop.
I know what window I want to switch to, I don't need "intelligence" to predict it.
One way to implement this is to use window manager with one workspace per window (or multiple related windows) and use a single hotkey to switch to it. Very muscle memory efficient and takes no confirmation delay.
That's pretty much what I do! 3x3 virtual desktops, Win+(qwe,asd,yxc) switches to one just like the keys are laid out on my (qwertz) keyboard.
Top middle is browser. Bottom left is everything chat and communication. Center left is the editor. Whatever is out of place is mercilessly closed or moved if I'm feeling generous.
The problem i have with this kind of thing is that i very often want to reference something in browser while using my editor or similar so have ing them on different desktops is really inefficient.
That's a decent approach to window management as well. I still use virtual desktops for windows that I want to have open but don't need to switch to often. The reason I build Smart Switcher is I wanted something that works well for managing a single virtual desktop and only uses two keys for the shortcuts. By default it overrides Alt + Tab.
Indeed. When I read this, I thought: "Doesn't he know about virtual workspaces?"
I also use a tiling WM (awesomeWM). I tend to keep one window per workspace, and then merely select multiple workspaces if I need to see multiple windows in tandem.
For my work Windows laptop, I've installed a virtual workspace manager.
> I wanted something that prioritizes one window at a time, is keyboard driven with has minimal if no GUI elements.
Sounds like tiling window managers like sway or i3. Those don't have any sort of predictive switching but otherwise:
- My window management is done via keybindings
- The status bar is completely optional (personally I use it but there is no *need* to use it)
- I set `hide_edge_borders smart_no_gaps` so if I only have 1 window open in a workspace, it doesn't have any border at all. No titlebar, no close/minimize/maximize buttons, just the window content.
Tiling window managers are great and I admit they gave me some inspiration for this project. I just don't find myself needing to have windows be split screen very often, at least not more then two. The one exception to this is terminals which I usually keep in a separate virtual desktop but besides that I would rather have the window I'm using be full screen.
Tiling window managers typically allow you to configure that. For example with XMonad (what I use, on Linux), you can set it so that all new windows are full screen by default, it's just a line of config like `layoutHook = fullscreenFull Full`.
You can also set any number of standard layouts that you like, and toggle through them with Mod-Space. So full screen could be the primary one, two-pane split screen the secondary one, all windows visible be the 3rd one, etc.
And as others have mentioned, using this in conjunction with virtual desktops is quite powerful. E.g. moving windows between desktops is just a key combo and is very quick, so it's easy to switch between full screen and side-by-side of any two tiles just by moving one to the same desktop as the other.
I think 90% of peoples issues with window management can be solved by using workspaces intelligently. I won't prescribe a specific method, but I personally keep certain things on certain workspaces. Browser on 1, dev on 2 and 3, chat on 4, music on 5, misc on others. I rarely need to use more than 5. And then I have bindings to go straight to these workspaces(mod-number keys).
My personal hot take is also that most people who think they really need another monitor are just addressing these symptoms because they're exhausted by alt-tabbing through 15 windows. They would be more productive on a single screen with a nice workspace configuration, though there are of course plenty of good reasons to want multiple monitors.
Neat idea. I'm sure this will solve some friction for the neuroscientists/mathematicians out there with ~20+ windows open.
Personally (as someone with ADHD), this would just relentlessly grind my gears. My thoughts are unpredictable by nature and so I value the "reliability" of knowing my chrome is two alt+tabs away, etc.
If an algorithm started messing with this and changing throughout the day... Damn, I'd go crazy.
deviation's ADHD has not read The Bitter Lesson
https://www.cs.utexas.edu/~eunsol/courses/data/bitter_lesson...
I similarly would have issue with the non-deterministic behaviour. I use space hammer and bind many apps directly to a dedicated chord each, so I know that (hyper)-b is browser, t for terminal, s for Spotify (or songs) etc.
Thanks! The long term goal of Smart Switcher is that the algorithm becomes reliable enough that window switching almost always requires only one Alt + Tab press. It's an ambitious goal that will require a lot of work, but that is the goal.
[flagged]
I need this combined with eye tracking so that I can switch the focus to what I am looking at. If it was a macOS app, I would definitely pay for it. Especially if it was a one-off fee of $50 or something like that.
Can you expand on what you're thinking here? It sounds like a window switcher that followed my eyes would be pretty disorienting.
Irix made panes active on mouse over. Which was at times very helpful and other times widely distracting.
Funny, this sounds like a good idea, but I'm quite happy with the exact opposite: I use rcmd[1]. I hold down the right command key and press the first letter of the window name to switch to it. I can override this dynamic mapping by pressing right command + option + <other key>, so I have an IM client on I, for example. It means I never have to remember/guess how command+tab works (although I had fewer issues with alt+tab on Windows)
[1]: https://lowtechguys.com/rcmd/
Cool, but how does it work if you have multiple windows in one app?
I used hammerspoon for something similar, but it worked on the window title. So, I could add custom titles to my chrome/iterm/code windows, and switch by pressing a shortcut and then typing 1-4 letters to match the title. It was my favorite window management UI for my work laptop with an absurd amount of tabs open.
Appreciate all the feedback so far!
For those who do try the demo or trial version, or purchase the full version, if you want to take a more active role in providing feedback, you can email me at hello@aboveaverageuser.com.
I like the idea of focusing on one window at a time with keyboard shortcuts for getting around quickly.
I feel like the only predictable workflows are when I'm cycling through N windows repeatedly. Tabbing works great for N=2 already due to reorganizing the list so the first element is always the previous window. But N=3 or 4 and maybe 5 are also common for me and kind of annoying with tabbing. Of course I don't know how predictable those are either, they're annoying to tab because the patterns are almost regular but also have frequent exceptions.
I am sorta talking myself into wanting normal tabbing alongside a browser style forward/back (which would NOT reorder the alt/cmd tab list). That way once I have my N windows as most recent, it's all back/forward navigation and the path to each window is something I would remember for the session.
I switched to a tiling manager (I use Hyprland). There are no floating windows, I have multiple spaces I can easily switch to and if I need to temporarily switch a window to full screen it's really easy. Because of that I don't spend any time at all looking for the window I want.
For me, Alt + Tab was always almost good enough. I find the shortcut itself to be a good experience but as you said, it's annoying tabbing through the window list. The idea with Smart Switcher is that you wouldn't need to override too often so it ends up being less keystrokes then tabbing through the window list.
Without having tried this, I'd say the problem with a predictive algorithm is that it is (ironically) impossible for the user to predict what will happen.
So after switching, they will need a short moment to reorient: understand where they were taken, check if it matches where they wanted to go, and then either switch again or stop the switching process to resume work. In UX design, it's better if you can complete a longer process without having to halt and reorient many times in the process (like opening a menu that was hidden and wait for a loading animation to complete, until you can actually read the menu items are).
If it's impossible to keep a mental model of where you are in the system, and how you can move to another specific window, then actually EVERY window switch requires much more effort and conscious thought.
I think windowing systems, virtual desktops, spotlights, stage managers, exposés, mission controls, are all too complicated... I don't know what the solution is, and I think it's great that people are working on novel solutions. But I do know I want to easily switch between 2-4 windows without the order randomly changing.
I have a very similar frustration with the complexity here, and found that scrolling tiled window managers (like PaperWM, Niri, etc.) might actually be the answer. All your windows are in a line, press the shortcut until you hit focus the one you want. Reorder with a shortcut or with a mouse.
The main problem with them is system support, they are buggy when tacked on top of a desktop OS (PaperWM), or require a pretty finicky custom setup (Niri).
I completely agree, a lot of the existing solutions are too complicated. I just want to be clear that once you use the override shortcut, the algorithm won't have any effect on the your switch order. When you are ready to switch windows, if you use the switch shortcut to switch from window A and it takes you to window B (because this is that the algorithm predicted) but this isn't what you wanted, you would press the override shortcut to go to C instead. Now because you have an override in effect for A, every time you switch from A it will take you to C, unless you use the override shortcut again.
This! I actually kinda miss the Win7 enhanced switcher (I actually kinda miss the whole Win7 Aero desktop, but I digress) ... Win-Tab bringing up a scrollable stack of the actual windows you have open and being able to either directly select the one you want or just keep Win-Tabbing through them. The Win10 tiled view is similar, but lacks the charm somehow...
At least for the last three or four windows, I would want strict LRU behavior, because that’s automatic muscle memory. I could see a “smart” heuristic be potentially useful for less recently used windows, although I have a hard time imagining how that could be significantly predicted from prior use.
This.
I wonder, OP, what is it that you dont like about how it just uses your most recent windows in order of last opened?
This actually works fine a lot of the time. There are just cases where that isn't the window I want to switch to. I wanted to find a solution that would cover more of these cases. One example is when my computer starts I have a some applications that automatically run. I don't want to tab through the Alt + Tab list to get it in the right order, I want it to be ready to go.
Microsoft traditionally already knows better than their users. Another crystal ball that pretends to read my thoughts is the last thing I want.
Cool idea, what model does it use to predict my next window?
Would be interesting to know if it's using a Markov chain, frequency analysis, or some more complex ML approach for the prediction.
The algorithm started off by using one of those more simple methods and has evolved a lot since then. I'm exploring a few different directions now. It's difficult to say what will be the best direction to take it in until I have some more data to see what's working. I want to make something that works well for a lot of different types of workflows.
LRU i guess.
On MacOS, I just have a single key associated with my top apps.
cmd + shift + {key} takes me right there
J = Chrome K = Terminal H = 1Password ... etc
Hammerspoon setup: https://github.com/joeyagreco/dotfiles/blob/aab6c4631c4c6b09...
Global maps: https://github.com/joeyagreco/dotfiles/blob/aab6c4631c4c6b09...
(local maps are not version controlled for obvious reasons)
Sometimes I want to switch between multiple windows quickly, or even toggle between them. Having two keys - alt+tab - allows me to enter the "window switching" state by pressing alt, while tab increments the selection, and shift+tab decrements (all while holding alt down). I leave switching state when I release alt.
Alt+tab is an optimal controller.
Maybe operating on the order of items in the queue, and use your prediction to sort windows, allowing faster selection? Even that disrupts sense of place - I know what applications I have open and where they are, and if I'm using alt+tab over 5 or more, I know the order in which I've opened them, and "where" I need to go to navigate to them.
There are second and third order impacts to changing interface behaviors, so the superficial benefit you might gain will be lost by creating friction at different levels.
A single key is insufficient for granular control, and no AI widget short of human level AI is going to capture the edge cases, which will create friction, at which point I will aggressively remove the offending piece of software.
I'd go back to the drawing board and work on a more complex model of window switching and all the ways in which people use alt+tab, and see if there's a use case for your idea at a different level. As it is, for me, it would interfere with a reliable and predictable interface, and I would be very unhappy.
> Alt+tab is an optimal controller.
Having to iterate through your windows is not optimal. I use sway, with windows divided across workspaces. So if I want to switch to my web browser I hit super+1. If I want to switch to my code editor I hit super+2. If I want to switch to my terminal(s) I hit super+3. I use 4 through 0 for other random windows (for example, I usually launch games or videos on 0. If I'm working in two code bases I generally put the editor and terminal for the 2nd code base on 4 and 5).
What takes you O(n) takes me only O(1).
Standard out-of-the-box Windows behavior: quick Alt-Tab press switches between last two windows; pinned apps on taskbar are switched with Win-1..9 shortcuts.
press alt, tap tab, click the window you want
If you're going to go all the way to the mouse, you could just... click the window you want.
I don't understand why people like to navigate their windows temporally.
Super+h/j/k/l (left, down, up, right) to move focus spatially feels much more natural, given that you can know at a glance which window is to the left of yours but they typically give no indication about whether a window is the 6th most recently touched or the 7th...
I do this with tiling and Super+f for maximizing the focused window. It feels wrong when I work in other environments without this.
I can't imagine wanting this. When I press ALT-Tab or SHIFT-ALT-Tab I can see most of the Windows I have open, and can get to the one I want quickly. The last thing I want is some algorithm showing me a next/previous window that may have nothing to do with where I'm headed. How would I be able to predict where it would send me so I can reliably know how many key presses I need to make to get there?
An interesting idea, but not something that would fit my workflow for several reasons (not the least of which is it's Windows-only).
Cmd-Tab on Mac and Alt-Tab on Windows does the same thing every time. Its consistency lets me use it extremely quickly, with confidence. It does what I want it to, every time. I don't wish to sound dramatic, but if I hit a shortcut with a window in mind, and this app picked the wrong window even once, I would uninstall it immediately. "Cmd-Tab, but it doesn't work sometimes" sounds frustrating and strictly worse than the system shortcut.
Maybe it should look more like GitHub Copilot. It watches what you're doing and shows a small indicator somewhere of the window it thinks you want to switch to. If the app guessed right, you hit a keyboard shortcut and switch to it. If the app guessed wrong, you just ignore the suggestion, like with Copilot.
Reminds me of how some FPS games have a "quick weapon switch" button to toggle to a specific weapon separate from the full menu of all weapons.
Uh.. it does not? Alt+Tab on windows switches all the windows, indiscriminately. Cmd+Tab on osx only switches between apps? If you have two Firefox windows on osx, you need Cmd+~ to switch between them, when you have finally reached the Firefox app through Cmd+Tabbing
I am aware that Microsoft and Apple have implemented fast window-switching slightly differently. I use both OSes daily. The point I was making was both make similar high-level design decisions.
When you begin alt-tabbing, you cycle between your other open windows, arranged by how recently they were last open. Cmd-Tab is the same, but between apps. Both features rearrange items only based on recency, and always keep the same order.
[flagged]
Never understood tiling managers. I want the primary thing I'm working on to be right in front of me, not all over the place. So my IDE might be in the middle of the screen, and a browser might be on the side. But as soon as I want to spend more time in the browser I just move it to the middle, obscuring the IDE.
The answer (for me): 1 thing per workspace most the time. maybe 2 things side by side on a landscape oriented monitor or 2 things on top of each other on a portrait oriented monitor. And: 2 or 3 monitors.
"I want the primary thing I'm working on to be right in front of me, not all over the place." is exactly why people use tiling window managers. The screenshots where people have dozens of apps all shown on a single monitor are mostly memes or to flex their uncommon layout engine.
I have a tiling window manager, I never use the tiling feature, I only have one window per workspace like the previous commenter. Alt+1 is always my browser, alt+2 is my code, alt+3 is slack, etc. Switching to the desired app doesn’t require thinking, and certainly no AI
Similarly, I fixed window management by upgrading to a big enough 4K screen I don't need to scale it up to see it.
I just place windows wherever based on what feels right at that moment. I haven't minimized one in years.
Two windows side by side makes them both too large to be practical. I'd have to get creative enough tiling them I never bothered. We don't tile the papers on our desks either, nobody complains.
Browser? Probably front and center. Chat window? Somewhere in my peripheral vision. If I'm doing a lot of things, I might move some windows over to another virtual desktop.
I know what window I want to switch to, I don't need "intelligence" to predict it.
One way to implement this is to use window manager with one workspace per window (or multiple related windows) and use a single hotkey to switch to it. Very muscle memory efficient and takes no confirmation delay.
That's pretty much what I do! 3x3 virtual desktops, Win+(qwe,asd,yxc) switches to one just like the keys are laid out on my (qwertz) keyboard.
Top middle is browser. Bottom left is everything chat and communication. Center left is the editor. Whatever is out of place is mercilessly closed or moved if I'm feeling generous.
The problem i have with this kind of thing is that i very often want to reference something in browser while using my editor or similar so have ing them on different desktops is really inefficient.
That's a decent approach to window management as well. I still use virtual desktops for windows that I want to have open but don't need to switch to often. The reason I build Smart Switcher is I wanted something that works well for managing a single virtual desktop and only uses two keys for the shortcuts. By default it overrides Alt + Tab.
Indeed. When I read this, I thought: "Doesn't he know about virtual workspaces?"
I also use a tiling WM (awesomeWM). I tend to keep one window per workspace, and then merely select multiple workspaces if I need to see multiple windows in tandem.
For my work Windows laptop, I've installed a virtual workspace manager.
> I wanted something that prioritizes one window at a time, is keyboard driven with has minimal if no GUI elements.
Sounds like tiling window managers like sway or i3. Those don't have any sort of predictive switching but otherwise:
Tiling window managers are great and I admit they gave me some inspiration for this project. I just don't find myself needing to have windows be split screen very often, at least not more then two. The one exception to this is terminals which I usually keep in a separate virtual desktop but besides that I would rather have the window I'm using be full screen.
Tiling window managers typically allow you to configure that. For example with XMonad (what I use, on Linux), you can set it so that all new windows are full screen by default, it's just a line of config like `layoutHook = fullscreenFull Full`.
You can also set any number of standard layouts that you like, and toggle through them with Mod-Space. So full screen could be the primary one, two-pane split screen the secondary one, all windows visible be the 3rd one, etc.
And as others have mentioned, using this in conjunction with virtual desktops is quite powerful. E.g. moving windows between desktops is just a key combo and is very quick, so it's easy to switch between full screen and side-by-side of any two tiles just by moving one to the same desktop as the other.
I think 90% of peoples issues with window management can be solved by using workspaces intelligently. I won't prescribe a specific method, but I personally keep certain things on certain workspaces. Browser on 1, dev on 2 and 3, chat on 4, music on 5, misc on others. I rarely need to use more than 5. And then I have bindings to go straight to these workspaces(mod-number keys).
My personal hot take is also that most people who think they really need another monitor are just addressing these symptoms because they're exhausted by alt-tabbing through 15 windows. They would be more productive on a single screen with a nice workspace configuration, though there are of course plenty of good reasons to want multiple monitors.
It would be good to mention in the blurb here early on that it's for Windows. I kept trying to figure it out from the text here and failing…
We've added a mention of that to the text above. Thanks!
Virtual Desktops + alt tab has always done it for me.
I would love to see your workflow in action for a real use case, unless your real use case is switching between calculator and paint…
[flagged]
It's funny that Windows is too stupid for window switching, let's also forget about screen switching, a total nightmare.