There are a few possibilities out there for window management.

  • In Mac OS, the bottom right corner of every window is draggable and will resize a window. There is no window border. Window controls for minimizing, closing and enlarging are in the top-left corner. The menu bar is at the top of the screen.
    • Enlarging on MacOS will resize the window to an "appropriate" size, which may or may not be full screen. (It seems that it will be no-menubar no-dock full screen in the future)
    • Windows look very clean since there is no visual window border.
    • The bottom-right corner can be pretty far away and relatively small, which can make window resizing awkward.
    • If a program somehow decides to become higher than the screen, it is very difficult to resize it to a usable size. (use keyboard to enlarge, drag corner)

  • In (modern) Windows, windows can be resized by dragging any window border. Hence, window borders have to be quite big. Window controls are in the top right. The menu bar is at the top of the window.
    • Enlarging a window will always make it full screen.
    • Window buttons and window edges are very big and make for a somewhat "heavy" feel. However, they are easy to grab and obvious to use.
    • There are several "Aero Snap" features that resize windows to a few practical sizes when dragged to a screen border. (maximize at top, left/right screen half at left/right, full height at bottom)

  • In Ubuntu (10.10 standard theme), there is a 1 px non-visible window edge at which windows can be resized. Window buttons are in the top left. The menu bar is at the top of the window. (It will supposedly move to the top of the screen at some point)
    • The tiny window borders make for a clean look, but grabbing one of those edges is excruciatingly hard.
    • Windows can be resized by Alt-Middle-drag
    • Having the window buttons and the menu bar right next to each other seems damgerous even though it did not yet lead to problems for me.

  • Cellphone operating systems run every application full screen. There are neither menu bars nor window buttons.
    • The lack of choice makes for very simple UI principles and intuitive usage.
    • There is no way to display more than one application/window at a time.

What do you think is the best solution usability-wise? Is it implemented in one of these examples? Is there another OS out there that implements the perfect system? Do you have an idea for the perfect system?

  • There's something to be said for the best of both worlds approach Apple is using in Mac OS X Lion: by being inspired by their iOS efforts, they're simplifying the window management metaphors used (such as Exposé and Spaces).
    – Rahul
    Commented Nov 10, 2010 at 9:56
  • Similar to what Tsuyoshi Ito has said, I would argue that this will work well for small displays but work less well the bigger the screen gets. Just think about full-screen apps on a dual monitor setup in general.
    – bastibe
    Commented Nov 10, 2010 at 14:40
  • note that this isn't managing windows but manipulating them
    – Dan D.
    Commented Mar 15, 2011 at 6:55

4 Answers 4


Managing windows is a bookkeeping task. It would be the best if a user does not have to manage windows. Certainly a user does not use a computer to manage windows!

Indeed, as long as I am concerned, the UI for moving or resizing windows does not matter much. If I have to move or resize windows, I am already uncomfortable.

I use Windows 7 on a laptop PC with a 1280×800 screen. Since the screen is small, I use almost every application in a maximized window. Notable exceptions are folder windows and command-line windows, which I rarely (if ever) maximize. There are several applications which keep forgetting the last window size although I always use them in maximized windows, so when this happens, I maximize the window using Aero Snap. Aero Snap is nice, but I wish the applications remembered the last window size. Except for that, I seldom change the size or the position of a window.

The UI for moving or resizing windows probably matters more on a larger screen, where not many applications are run in maximized windows.


I think it—like most things—depends. I can only speak to my experience and preferences.

For a workstation, I prefer a tiling + tabs + multiple workspaces system like the Ion window manager for X11 with the ability to create a tile/space for overlapping windows. (I used Xnest with Ion for that.) An option to expand a window to full-screen is good too.

For a handheld device, I have found that full-screen works best. Though there are needs for status and notification features that borrow space from the active application.

For a tablet, full-screen is mostly best, but I have found that I do occasionally want to be able to split the screen between two apps.

For overlapping windows, I want to be able to resize from any edge like MS Windows and Ubuntu. I want to be able to hide windows, make them full-screen, and make them “appropriate” size. Having the ability to tile windows as MS Windows does is useful, though it can’t replace what Ion can do.

I want a top-level way to browse all windows grouped by application. The background window should only be a background. Giving it additional features means you have to then provide a mechanism to bring it to front or hide all other windows. Better to just move that functionality into a first-class window.

Although, in the end, the devil is in the details. e.g. Not losing the windows original size and location when toggling away from hidden/full-screen/appropriate-size.

This isn’t even touching on things like the Mac’s Exposé or MS Windows alt+tab mechanism. Or being able to combine multiple windows into a single tabbed window. Or scrolling, which arguably should be included in this discussion as well.

Plus, I think there is a lot of unexplored ground yet to be covered here.

  • I agree that there is a lot to do, still. I also like the idea of tiling windows--be that Aero Snap on Windows, Cinch on the Mac or even something like Ion. I guess that overlapping windows are really only an "overflow" mechanism for screens that are too small. Then again, I wouldn't want to have a 30" screen on a laptop.
    – bastibe
    Commented Nov 10, 2010 at 14:48
  • @BastiBechtold Perhaps the overlapping/tiling terminology isn’t as appropriate distinction anymore, as a system like Ion does provide overlapping (or an equivalent) through its tabs to handle overflow. (And through workspaces, which I think are perhaps more integral to Ion.) To me, the difference between Ion and the conventional Mac UI is that Ion is trying to do essentially the same thing but more efficiently. And that is: Let the user decide what windows are visible simultaneously and how much of the screen gets dedicated to each. Commented Nov 11, 2010 at 14:36

You have very detailed analysis of each of the current mainstream OS and their resizing methods. As you have already pointed out, each has its benefits and shortcomings. However, there is one constant throughout each system (expect mobile): click and drag. This action is the universal motion for enlarging, and it is also built into the user model (the way people think when using a program).

Limiting this essential action to a small click area is a major mistake that I see Ubuntu and Apple making. If I conjure up Fitts's Law, which basically states that a larger click area is more accessible, then I would conclude that the Windows OS has a better (albeit "heavy") UI design for resizing windows.

Additionally, the resizing method should fit into a users' expectation. As you stated, MacOS has a enlarging button that does not maximize the window. How many times have you been on a Mac and you wanted the screen to maximize? And you touched on mobile devices and their inability to resize. This has to do with the way people use the product. On a mobile device, the screen is already very small, so min/maxing would be a unnecessary process. It is all about how the system is being used!

However, Apple is increasingly integrating their touch screen hand gesture system (pinching, tapping) into their UI. I am very excited about this because of its usability possibilities. For instance, if there was a hand gesture to resize/maximize windows, that would completely eliminate the need for the "heavy" boarders. By using these gestures, the system would create a better UX by reducing the click area to 0 (because don't have to move the mouse to the resize area).

  • That is an interesting idea about circumventing the difficulties with window resizing. Then again, window management in general seems to be basically an unsolved problem and using another method for resizing might not fix that basic problem.
    – bastibe
    Commented Nov 10, 2010 at 14:43

The ideal window management would be most efficient with screen space and allow users to do window management tasks as quickly and easily as possible. However, there is often a tradeoff between these goals. This is my opinion of the best compromise:


It really doesn't matter which side of the window the buttons are on. They should be ordered from least destructive to most destructive with most destructive the furthest away from the centre of the window. This means close, minimise, maximise/restore if on the left or maximise/restore, minimise, close if on the right. Most of the default user interfaces do this anyway.


It is a poor design decision to have a border so small that grabbing it is really difficult to do. In fact, this has been marked as a critical bug by the Ubuntu design team (bug #160311). However, using a really thick border like in Windows uses up too much screen space. I think windows should retain the small visible border but have a larger, invisible border (nothing huge but enough to grab). Also, resizing can be made simpler using a shortcut key. I currently use compiz resize configured so that pressing the super key allows me to resize the focused window by simply by moving the mouse. I can then click once I am happy with it. I find this saves me a lot of time over resizing using the border, even if it is a thick border.


The almost ubiquitous drag and drop method of moving windows works well, so should be kept. It is a bit of a hassle moving the mouse all the way to the top window border to do this. The GNOME window manager (metacity) and compiz provide a quicker way to move windows. You press the Alt key then you can click and drag anywhere on the window. This saves time therefore it is good behaviour and should be kept/adopted. I'm not sure what other desktop environments like KDE, XFCE, Mac OSX and Windows do but if they don't already, they should implement this behaviour.


Windows are traditionally switched using a dock or panel. I find this works fairly well but not as the only method of window switching. Docks and panels should have the ability of window dodge/intellihide to save space. I find that plain autohide, like the kind currently used by GNOME panel is insufficient. Which side of the screen the dock is on doesn't really matter and should be a personal preference. I happen to like my dock on the left hand side. Docks can save space compared with panels by grouping windows and using icons instead of text. As my main method of window switching, I use compiz scale. This gives me an overview of all my windows from all my workspaces. I have it configured so that I click to choose a window and right click to close a window, making these actions very quick. Another advantage of scale is that it gives a better visual clue of what you are doing in each window so it is easier to know which to pick. Window previews, which compiz also provides, also have this effect but require hovering over the dock/panel items to get the preview, making it slower. I also find scale quicker than Alt+Tab because I don't have to flip between the windows. Scale can be activated using shortcut keys but I prefer to use a 'hot corner'. Corners are very quick to get to with the mouse because they are infinite in 2 directions, especially with a trackpad as this only requires a quick swipe of a finger. I use the bottom right hand corner because it is furthest away from most of the activity so isn't easy to accidentally activate. Obviously, this depends on where other desktop elements are placed, but bottom right is ideal for me with a left dock and a top panel. I still find dock items useful for actions such as launching and minimising.


Often it is necessary to view multiple windows at once eg. for drag and drop actions between windows. Overlapping windows work quite well and are optimal for dialog windows which only exist for a short period of time. However, tiling is far superior for reading from multiple windows or drag and drop actions. I find I have to tile manually which is tedious and it should be easier. I would like to be able to Ctrl+click on items in the dock/window switcher to tile them. By default these should take up equal space on the screen (or as equal as possible - 3 windows would be hard to fit equally) and should take up the whole screen but it should be possible to drag the border between them to adjust this. If a window is closed or minimised, the others should increase in size to take up the remaining space. A single click on any of the dock items should revert back to the normal windowing mode and focus that window.

Some of these solutions don't really work on tablets and other devices without keyboards. However, multiple gestures could replace some of the keyboard shortcuts. The interface should really depend upon the device it is used with. My suggestions are good for a laptop or desktop computer.

I find that the window management experience on Ubuntu with my compiz tweaks outweighs the others, although I have never used Max OSX. However, it is still not perfect. I think my proposals would make these window management systems better but it is not perfect and I don't think there is a perfect way. We are limited by our input devices. Maybe one day we will find a way to hook our brains up directly to the system but until then we are stuck with what we have.

  • That sounds like an interesting way do manage windows. Personally, I dislike using keyboard-modifier keys to change the behavior of the mouse as this kind of destroys the clean notion of the mouse as "pointing device". It is also somewhat unintuitive for novice users--i.e. it needs explaining.
    – bastibe
    Commented Nov 11, 2010 at 8:19
  • To answer your query, almost all of the Unix window managers provide Move on Alt-Left-Drag and Resize on Alt-Right-Drag, anywhere over the window. (KDE, XFCE, Fluxbox, OpenBox, AfterStep, Enlightenment, ion, ... The one exception is Ubuntu's Gnome/Unity abomination!) Those actions are incredibly swift for power users, but not so easily discoverable (tooltips when the Alt key is pressed could help). Commented Jun 4, 2014 at 17:59
  • But anyway I notice that most of my colleagues fullscreen all their windows, and Alt-Tab between them, making window size and position irrelevant! Commented Jun 4, 2014 at 17:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.