Managing macOS application windows like Ubuntu Unity

I'm a relatively new to using macOS for work and using macOS windows management (Mission Control?) turns out to be extremely annoying. I'm using Sierra OS. Here are some things that I would like to understand:

I like to work on two desktops and have some windows belonging to 1st desktop and some to 2nd desktop (think Unity). When I create a second desktop I would logically think that I can move one of existing windows to it, but right-clicking on the app in "dock" only shows: All desktops, This Desktop, None. Using the ^1, ^2 shortcuts brings the window to selected desktop but then shows it on the other desktop where it came from as well. Maximizing the window and restoring the size back to original will bring it back to original desktop as well, which seems to be a bug?

  1. What is a good way to assign windows to desktops if there is any in mac?

  2. Is there a software that can override this annoying functionality? Another windows management package?

  3. Why does any maximized window appear on the very right side even it belongs to the most left desktop? Any way to stop this?

I already tried looking for answers on the web, but haven't found any good solution, only mirriad of useless articles.

enter image description here

Youtube video


I'll take your points in order:

  • You can assign entire applications to desktops, but I don't know of any tool that can assign specific windows to desktops, at least out of the box. Maybe you could whip something up with Hammerspoon and Lua scripting.
    I've never actually used Hammerspoon, I've just heard about it. If you decide to go this route, good luck!

  • That's not actually how you move windows between desktops. That dock menu is for the entire application, not the specific window. (Windows actually don't even have window management menus at all!) To do this, grab the title bar and press ⌃← / ⌃→ or do a 3- or 4-finger trackpad swipe, or hold the window at the edge of the screen for a moment. You can also move windows between desktops with "Mission Control", a combination of Expo and Scale. You get to that with ⌃↑ or a 3- or 4-finger trackpad swipe up.

  • It sounds like you're talking about fullscreen, not maximizing; it seems to just work that way. Unlike in Unity, though, the window no longer belongs to any desktop -- it's in its own space, all by itself. You can drag it between any of the other spaces, of course, if you want it over by the left again.

    • If you want to maximize your window instead of fullscreening it, ⌥ (option)-click the green(by default) title bar button. Note that in some apps, like Pages, this will expand the window to fit the content instead!

Check Keyboard Preferences - Shortcuts and modify them to match your habit. Also, I consider dragging a window to the top (opening Mission Control) and putting it on the target desktop seamlessly the simplest way.

(sorry I do it to ask questions. :D)