Black lives matter
Portrait Dr. Axel Rauschmayer
Dr. Axel Rauschmayer
Homepage | Twitter
Cover of book “JavaScript for impatient programmers”
Book, exercises, quizzes
(free to read online)
Cover of book “Deep JavaScript”
Book (50% free online)
Cover of book “Tackling TypeScript”
Book (first part free online)
Logo of newsletter “ news”
Newsletter (free)

Fixing Mac OS window management

[2011-03-01] apple, dev, lion, computers, mac
(Ad, please don’t block)

Window management on Mac OS X is currently a bit confusing: You have applications, Spaces, Exposé, and Dashboard. Mac OS X Lion will add Launchpad (an app launcher) and full-screen apps to that arsenal. This post lists ideas for simplification.

The key objective is to reduce the number of navigational mechanisms that are used in Mac OS X. Especially applications and Spaces are at odds: Both are very similar, in that they group windows. But they also influence each other in unexpected ways. For example, you might change the current application and inadvertently change the current Space, too. Apple has recognized this problem and tries to remedy it in Mac OS X Lion with Mission Control. It’s described as “There you can see your open windows grouped by app, thumbnails of your full-screen apps, and Dashboard, arranged in a unified view.” I looks like Mission Control will already simplify things by having a single Space for all non-full-screen apps, one Space for Dashboard and one Space for each full-screen app. The solution described here improves on Mission Control by handling switches to full screen more consistently and by keeping the ability of Spaces to group windows from different applications.

Apple’s Mission Control

Main idea: Spaces become the basic user interface construct for window management. All other constructs are just special kinds of Spaces.

  • Every app occupies its own Space, whether in full screen mode or not.
  • You can only mix windows from different applications in newly created “custom” Spaces.
    • If you zoom out, dragging a window is a signal to create a new Space or to add it to an existing custom Space.
  • The Dashboard and the app launcher get their own Spaces (similar to what Mission Control will do).
  • Tabs: We have to figure out how tabbing [1] should be done and standardize it across applications.
    • Ingredients: one tab per document, tab grouping (e.g. via windows).
  • Put background Spaces to sleep: Firefox is especially bad at consuming processor power even if it isn’t visible.
  • Exposé: could be done when zooming out and showing all spaces (triggered by, say, the space key?), again similar to Mission Control.
  • Aero Snap [2]: Mac OS needs something similar to this Windows 7 feature. Often you just want two windows side by side. With Aero Snap, dragging a window beyond the top of the screen makes it full-screen, dragging it to the right lets it occupy the left half of the screen, etc. This should be complemented by resizing two windows at the same time if they occupy the whole screen. That is, it should be possible to move the imaginary separator between them. Note that this feature is just as important for showing to full-screen apps on the same screen.
  • Currently, the dock shows running apps (similar functionality to Mission Control) and favorite apps (similar functionality to Launch Pad). The former functionality is especially confusing if an app is spread over several spaces. Instead, the dock could show thumbnails of all open spaces. Using it for favorite apps seems OK.
Open issues:
  • What will happen to the menu bar?
    • None of the Apple apps that are shown in full screen mode have a menu bar. Will you have to leave that mode in order to see a menu bar and perform rarely used commands?
    • Having a menu bar at the top of a screen makes less sense if that screen has windows from several applications.
      • Existing solutions: Linux and Windows have in-window menu bars, NeXT had floating menus.
      • Solution likely used by Apple (if any): menu buttons and context menus.
    • Apple’s approach to show the menu bar on at most one screen with multiple screens is not a good idea. This is easiest to change and Apple should do so in Lion.
  • Will Mac apps and iOS apps converge on the same user interface? This would help developers, because iPad apps and Mac OS apps are already quite similar and maintaining separate user interfaces is a lot of work. It will be interesting to see how Mac touch (=trackpad) and iPad touch will be unified.
Related posts:
  1. Web browsing with tabs
  2. Snap - Windows 7 features