Hacker News new | past | comments | ask | show | jobs | submit login
Redesigning OSX Spaces: 45˚ Is All It Takes (azarask.in)
108 points by kinetik on Feb 1, 2011 | hide | past | favorite | 86 comments



This is an easy trap to fall into, thinking you've solved a problem when you've actually just specialized for one use case. 45° is all it takes only if you use Luka's four-space configuration (in much the same way that the current functionality is ideal for a two-space configuration). This "redesign" doesn't even define how other configs would work, much less improve on the status quo. Solutions are always easy when you leave scaling as an exercise for the reader.

And all the solutions I see in the comments either bring back the major complaint about the existing functionality (unnatural navigational rules) or just scrap Luka's design and suggest something else.


What you say is a fair point, but the scheme he proposes would make the 2x2 situation so enormously much better that it is criminal that Apple don't implement it immediately.

That, fixing the Expose/Spaces interaction, and fixing the key binding problem (when editing documents I got used to using the shortcut to move around between words, and spaces overloads some of the same shortcuts).

Now that he's pointed out the problem with the vertical versus horizontal movement, I wonder whether a 1x4 set of spaces would work better for me than the 2x2 arrangement, given Apple's appalling default behaviours.


I use a 1x3 arrangement, and it's pretty easy to keep track of where I am / which way to go when I need to switch.


I think Spaces is dead. I doesn’t really fit anywhere in the vision of the desktop Apple showed off in the Lion sneak peak, Apple might have decided to quietly drop it. The new fullscreen mode might take its place.

Spaces wasn’t mentioned in the demo at all and it would be very inelegant to just tack it on top of the concept Apple has for the desktop. I will be surprised if it is still there when Lion arrives.

Multitouch gestures to switch between spaces (instead of fullscreen apps as was demoed in the sneak peak) would be pretty cool but I’m not holding my breath.

Apple does like to drop nerdy features few people use from time to time. The only thing that gives me pause is that they also seem quite happy to keep at least some of them around. The screen corners would be one example. (Then again, screen corners don’t change the whole desktop around.)


As a long time desktop *nix user, I have no idea how any one works without multiple workspaces. For me it's second nature to me to switch to another workspace to start a new kind of task. Multiple workspaces is such a brilliantly simple concept I am surprised it took so long for it to be adopted into OS X. Sadly (for OS X users) Spaces is pretty poorly done compared to how multiple workspaces generally work in Gnome or KDE.


Really? In Spaces, I can grab a window with my trackpad and then hit my hotkey to go to the next space. In Gnome on Ubuntu, I have to right-click and hit "move to workspace", and in apps with nonstandard widgets (read: Chrome), even that doesn't work and I have to go down to the taskbar to do that.


You can do this in most desktop managers for Linux as well, where Spaces fails is how each workspace in managed. In Gnome each workspace acts almost like a new lite session, for example only the applications in the current workspace show up in my task bar (this is optional by the way) and when I alt+tab then only the applications on the current workspace are tabbed through. This works very well because when I switch between different task (say photo editing and programming) I don't want to generally think about what other non-related task/applications are running on my system. In Spaces every workspace is part of a kind of global workspace and there is no hiding of task environments.


That's the only reason why I don't use Spaces. It drives me nuts when I switch applications with alt+tab and get jumped to another space.


    It drives me nuts when I switch applications with
    alt+tab and get jumped to another space. 
That's an option you can turn that off in the Expose/Spaces Preferences.


Try Shift-Ctrl-Alt + Arrow key. I just tried it in Chrome on ArchLinux and Gnome.


alt-space also brings up the little menu that he wants with no clicks


The different environments all have their own shortcuts, but you can definitely customize things. Might I suggest awesomewm? It takes about two days of reference back to the man page (keep it up in its own tag ;) ) but after that you generally have the hang of it, and it has far more advanced features for workspaces/tags than the other players, at least the floating WMs.

I've never really liked Gnome much, you might want to try some of the other DEs out there, especially since Gnome is pushing a whole new interface in a few months so you'll have to learn new stuff anyway.


As i rearrange my new windows almost always, i've mapped the movement to <Win>-1, <Win>-2, etc. Switch to a Desktop: Alt-F1, Alt-F2, etc.


I think it took so long to be implemented in OS X because it's actually not a big benefit when you have a nice windowing system with drag and drop that works everywhere (in fact the benefits of drag and drop are significantly reduced by using virtual screens and the benefit is -- for most users -- outweighed by the cost).


You're the first person I've heard describe OS X as having a "nice windowing system". OS X has many good traits, but I've always thought of the WM as being rather poorly done. As far as I can tell it lacks proper maximization, horizontal/vertical maximization, snapping, mousefocus, intelligent raise behavior, tiling, tabbing, omnipresence, pin-to-top, pin-to-background, keyboard move-resize, and meta-key drag+resize. Not to mention configurable bindings for any of these.

Now there's single-app mode, which I take as a tacit acknowledgement that real maximization instead of "zoom" was a good idea after all. How long did that take, again?

I really really want to like OS X. It does so many things right (focus-stealing, DnD, and copy-paste among them!) It's just so painful to use after having a real WM.

[edit] For reference, I use Openbox; the listed features (except for tiling/tabbing) are what I use everyday. I expect the awesome/ratpoison crowd has slightly different but no less valid criticisms.


Expose is really really good. The biggest problem with Spaces is that it doesn't 'play nice' with Expose.

The maximising the Window thing is a tacit acknowledgement that you're not actually using the full potential of your desktop as a multi-application environment. :-P

If you want to bash a Windowing system that truly deserves it, bash the one from Windows! OS X isn't perfect, but Windows is really really bad. Except for Windows 7, which made big improvements (aka copying OS X) and is now merely really bad.


Are you confusing Windowing System with Window Manager?

I'll give you that Linux has a few better WMs than OS X. (I'm particularly fond of Openbox myself, and was always excited about the elusive 'Enlightenment e17'.)

However, I cannot accept any claim that X is better than Quartz.


> Are you confusing Windowing System with Window Manager?

His comment is fair considering the parent comment was confusing about why it took so long to get spaces (an aspect of window management) because of elements of the windowing system.


I didn't mention spaces here. Did you read a different comment?


Sorry, I confused you with podperson, the parent commenter to the person you replied to. I corrected my comment to address the proper commenter.

Regardless, his use of Window Manager and System are fine within context.


YMMV. There are two features that I'm missing from the *nix implementations i've seen, which work great in Spaces. One is the ability to find a window across multiple desktops (spaces+exposé ) and the other is the ability to assign a default space for different applications


    Mission Control is a powerful and handy new feature that
    provides you with a comprehensive view of what’s running
    on your Mac. It gives you a bird’s-eye view of everything
    — including Exposé, >>> Spaces <<<, Dashboard, and full-screen apps.

    There you can see your open windows grouped by app, thumbnails
    of your full-screen apps, Dashboard, and >>> even other Spaces <<<,
    arranged in a unified view.
-- http://www.apple.com/macosx/lion/

Then again, the screenshot provided doesn't seem to show any hint of spaces.

[Edit: Perhaps the spaces appear alongside the full screen apps?]


Ah, cool. That’s pretty great evidence which reduces my suspicion greatly. I didn’t think to check their website copy.

I think you see no hint of Spaces because it will probably continue to be off by default.


Spaces is vital to my current use of the 11" MacBook air: I wouldn't have purchased one if multiple desktops and application locking weren't available


I'll be SO FUCKING PISSED if Apple goes and drops Spaces now. It's a piece of crap software that is far inferior to what came before, but since it came standard it drove the other multi-desktop extensions out of business. (I was particularly fond of VirtualDesktop.) Now Apple is the only game in town for multiple virtual desktops, and they might take it away?

You know when Microsoft did this sort of thing in the browser wars, a lot of people got up in arms about it.


I'm kind of hoping the Lion demo turns out to be a complete dead end. Most of the stuff in the demo seemed quite badly thought out.

http://loewald.com/blog/?p=3440 (careful watching of the demo revealed that pretty much nothing showed worked terribly well)

I think it might be interesting to integrate ideas in spaces, expose, etc. by dynamically rescaling the UI when the user does stuff like resize or move a window. (After all, when you're messing with a window's dimensions you're generally not too concerned with every pixel in a given window.)

In other words -- why does Expose need to be an explicit mode? When I resize or drag and drop -- rescale the UI dynamically to deal with the relationships between windows and apps. And this becomes even easier if some or most windows are full screen by default.


The guy who did the demo was visibly shaking, I think the errors he made were more owed to his own nervousness than flaws with the software. We will see, this is really you would have to use to see whether it works.


I use BetterTouchTools http://www.boastr.de/ which is free and I just setup three finger swipe to change spaces in that direction and three finger tap to see all spaces. I love it and hate using another computer without it now.


Spaces is essential.


Not for the vast majority of OS X users. Sure, many of the tech-savvy Mac users I know use it, but none of the laymen do. And it's the laymen that Apple's primarily targeting, because they're a much bigger market and much easier to satisfy.


Not necessarily true or they would have stopped shipping things like the terminal.app a long time ago (or including python, ruby, etc.). Even apps like Automator are probably out of the scope of 'laymen'.


I'd wager that Terminal.app requires a lot less maintenance work than Spaces.


Especially considering how many basic features it is missing...


A working pgdn key, for example.


I only use it as a cheap way to mentally background apps that won't be looked at as often (e.g. iTunes, running a server in Terminal).

I find that the focus model tends to break down in Spaces for any multi-window application like Finder, Chrome, Emacs and Terminal. If every window of an application is going to jump to the top then that just adds extra work to switching desktops.

That being said, I do like the Application->Window switching model on it's own and wouldn't trade this for Virtual Desktops.


Spaces is, first and foremost, off by default meaning that it’s pretty likely that most people don’t know about it and have never used it. If Apple would consider it essential, it would be on by default.

Some people might think that Spaces is essential but Apple seems to disagree with them. (I’m not saying that Apple is right.)


I'm not sure where I stand on this, however, I'd like to provide one data point, one that I expect many HNers share. I'm primarily a web developer, though I do frequently work on Android projects or random hacking on some python projects ( sage anyone? ). For web development, I find spaces essential. I have several api docs open at any given time, eclipse for android stuff, Aquamacs ( emacs in cocoa ), potentially an Android emulator, a preview image from our designer, several browser tabs for email, roadmap, and backlog tasks and a team chat window.

I, too, thought that most people wouldn't really care much for spaces, however I have noticed several of my non-technical friends using and began wondering. The conclusion that I came to is that, if you replace my IDE with something like MS Word and my text editor with something else, perhaps Photoshop or Illustrator, you'd get roughly the same workflow that I have, just without the code.

Now, I'm not saying that Spaces is essential, but I this is one case where something we think is nerdy, is actually pretty main stream.

Since were on the topic of application visibility and switching. I'm wondering if there is a better way than spaces. It's obvious that full-screen mode with easy switching isn't it. I find that context switch to complicated though I'm not quite sure why - way back when I was on windows, that was the way I did things. Perhaps expose is underused?


I just use Cmd-H and Cmd-Tab. I tried Spaces when Leopard came out and found it to be more trouble than it was worth.


There was a good discussion in the Hypercritical podcast by John Siracusa and Dan Benajamin about Spaces possibly being dead in 10.7. It was in episode 3: http://5by5.tv/hypercritical/3


One note, you can use Better Touch Tool to invoke Spaces (and Expose) with gestures. I have 4-fingers-right for Spaces and 4-fingers down for Expose, is quite nice.

I would be most unhappy if Spaces went away, but I wouldn't be too surprised either.


It's not necessarily an improvement. Sure, for navigation it makes things easier in the 4 workspace situation. However if you're using expose function in spaces, you'll have to have a 3x3 grid of tiles displayed like so:

    oxo 
    xox
    oxo
(where x is a "space", and o is just blank). The reduction in screen use might not be worth the boost in key-based navigation (especially since in the best case, this redesign only saves you a single keystroke [moving diagonally in the current scheme]). With this 'fix' in place, you'll have screen previews that are 33% smaller than they were originally, which may very well make things difficult to find in the expose overview.


Not directly related to your point but.... I think it comes down to what percent of users have more than 4 spaces or wouldn't mind only using 4.

The concept of making the typical use case better at the expense of completeness seems to be very much in line with Apple's UI decisions.

I can't remember where I read this (I think it was in "The Inmates Are Running The Asylum" - a great UI design book). But he makes the point that as programmers we are trained to think about edge cases so we often bring this over to UI design where it's better to think of the typical case.

Basically, when given two options in UI design:

1. satisfy 80% of users with a simple design

2. accomodate all users, but add a little complexity

Choose 1


I think this is also part of why a lot of typical techie types dislike Apple. Apple tends to go with #1, and often times techies are the edge cases who would be frustrated by it.


He's redesigning the arrow keys to map to screens instead of mapping to movement from the current screen.

The solution to a higher problem space (eg. more than 4 screens) are additional unique symbols. So if you want 8 screen use the number pad. etc. If you want 26 screens just map a screen to each letter. etc.


But you can go to 9 screens with the existing system: I press Control+[number] and it takes me to that screen--this is built-in today.


That's crazy. I actually set my virtual desktops up exactly as he described in VirtuaWin, back in the day.

The advantage he doesn't talk about directly is that if you're using a virtual window manager that doesn't have a notion of physical space (ie, it just has jump-to-desktop hotkeys, there's no "go up/down/left/right" hotkey), you can still configure it in a pseudo-physical layout using this trick by mapping each space to an arrow key.

Obviously it doesn't map very well to n>4 spaces, but you could always have a Zelda-style "shadow world" with a different modifier key + up/down/left/right to get 8.


As someone who uses multiple tagged desktops in Awesome on Arch Linux, but doesn't even use spaces on Mac, can anyone tell me why I should, and is it better or worse than Awesome's multiple desktops?


I'll just add my support for the sibling comments that Spaces is really awkward in comparison to workspaces/tags/whatever on all the Linux DEs I've used, including minimalist stuff like Openbox. In OS X, Spaces is just a tacked-on deal that doesn't work well with the rest of the experience, and most people don't know it exists until they accidentally trigger it with a corner or key combo. If you value multiple desktops, you'll be much better off using a Linux DE.

I run Arch Linux on my MacBook Pro, for instance. This has made at least two Mac fanboys seriously hate me.


I'd like to think that having Mac fanboys hate you is a peripheral perk that comes with running Linux on it.

To be fair, I dislike fanboys of all shapes, colours and flavours.


upvote for running linux :)


I started using OSX after using XMonad for the better part of a year, and it doesn't even come close. Like vault_ stated, its simply to clunky. It takes almost a second to switch between workspaces, with a shiny and pointless animation. The shortcuts are hard to get right too, I still don't have a good one to send windows between workspaces (which I used to use extensively for keeping things organized and staying sane.)

I assume XMonad is a similar experience to Awesome--I never tried to understand Awesome too much. Spaces cannot compare.


Xmonad is nice, but Awesome's tags beat it IMO. You don't really have multiple desktops, you have multiple tags. Each window can have multiple tags and there can be multiple tags visible on the screen at any moment. So what you end up seeing is a union between all the windows with any of the tags that are set to be visible.

Awesome is both really minimal and really extensible. By default you don't have anything, and you build it up to how you like it with lua and a couple of libraries that expose bindings to things like desktops and tags.


My comment above repeated here just for you. Try:

defaults write com.apple.dock workspaces-swoosh-animation-off -bool YES

restart finder. Enable number key navigation.

You're right, it's hard to move windows between. But, you can set defaults so that certain apps open in certain spaces. For me, this has been good enough.


Awesome, thank you. Even though I don't necessarily like Spaces, I still use them extensively. No animation makes it better, I have not used application assignments yet (but probably will soon.)


Well, nothing really compares to Awesome's tagging system (and I say that after only managing to survive a few days in Awesome, I need a bit more structure by default).

I'm not really sure why, but Spaces just feels inferior to basically every multiple desktop implementation I've used on Linux. There's just not enough of a UI for it, and it's clunky to use. On Linux using multiple desktops is smooth and natural. On OS X, it just feels weird.


I have 6 spaces. How would this solution work for that?


Maybe:

      x
    xx xx
      x
Worst-case would be going from far left to far right, which would take 3 presses.


I've never actually used this before, but I've always envisioned arranging them in a cube, one on each face.


The problem with a cube is that you will always end up with at least one upside-down screen.


Or just number them. All I have to do to change "tags" (loosely analogous, but actually far more powerful...) in my window manager is whack meta-#. The user is free to visualize this however they choose...


They already are numbered; you can choose to use Control, Command or Alt + the number to switch.


Huh. I guess I'm not really getting why the author thinks this "No matter which space I am in, the keyboard shortcut to move to any other space is always the same." is a big gain then. If he really likes arrow keys so much I'm sure he can just remap the shortcuts to get the effect he's describing.


I don't understand why switching spaces frequently is the interaction to optimize. If you are switching frequently, you are using it wrong. I've seen people running just two apps, and using Spaces to switch between them, and it's painful to watch.

I stopped using Spaces after a while. I find Cmd+Tab to be quite good enough.


Most people are going to use more than two programs, first of all. Secondly, who cares if someone likes to use Spaces for two programs? I guess you're annoyed by the animation? Turn it off.

I've never really liked the aspect of the Mac philosophy that essentially amounts to "my way or the highway".


For those who don't know:

defaults write com.apple.dock workspaces-swoosh-animation-off -bool YES

restart finder.

No more annoying animation. This + number key bindings make it so it is as fast as xmonad to switch desktops.


Can you double check that? You have a space between -off and -bool, is that correct? I tried it, restarting finder with "killall -KILL Finder" but I still see the animation.


I just tried it myself, and the defaults line is correct. However, he says you then have to kill Finder, which is wrong. the proper thing to type next is:

killall Dock

... which finally causes the setting to take effect.


This idea breaks down pretty quickly when you add more spaces. I use 9 spaces on my macbook pro and have created multi-touch swipe motions to move me in any virtual direction I want. The simpler solution is to just make the spaces an infinitely wrapping plane like playing asteroids.

For any one who thinks that 9 is too many spaces, back when I used lower resolution PC's I actually had a tool called JSpager that gave me 12-16 different 'spaces' and a miniview in the corner with views of the layouts in each space, and I could easily keep track of everything.


I have 15 tags in my awesomewm environment right now. Awesome also has independent tags per screen unlike most other multi-desktop WMs, so when I had two screens and nine tags on each I effectively had 18 desktops, and I also didn't usually have an issue keeping track of windows.


This is one of the first things I do on any new Mac:

    defaults write com.apple.dock workspaces-wrap-arrows -boolean NO
This disables the spaces wrap-around behavior, simplifying the space to an easily navigated 2x2 grid. You can always get to the bottom-left space without already knowing where you are.

So while it's not exposed to casual users, the author's request is already implemented in the OS.


Set the lower right hot-corner to exposé and the lower left hot-corner to spaces, and navigating around spaces and windows becomes trivial.

Hit both corners in sequence and you get all windows visible, and you can view or drag windows around between spaces as needed.

Or hit the spaces hot-corner and the four-finger swipe, if you're running with a Unibody or a Magic Trackpad, for the same view.


This only works if you use your mouse to move around Spaces. The current model is quite a bit broken if you use keyboard shortcuts, as correctly described in this article.


erm whats wrong with using ctrl-space# to switch between spaces for the same effect he describes but with up to 9 spaces?


This is exactly what I do, only lower left triggers Spaces and upper right triggers Expose. The 45 degree mouse-swipes between them feel incredibly natural.


Pfft. All blackbox users know mousewheel-on-desktop is the One True Context Switcher!

Jokes aside, I can't help but feel that Spaces is somehow incompatible with the OS X application model. Because the desktop is application-centric as opposed to window-centric, it is very difficult to use an application for multiple tasks at once, which conflicts with the workspace-as-task model.

Web browsers and terminals, for example, get spun up on every workspace for various short-lived tasks and destroyed shortly thereafter. But spaces (at least as far as my 3 hours of hacking got me) insists on switching to the last workspace containing a window of the starting application, instead of placing the new window where I am now.


There is an option in the Expose Preferences that determines whether or not to switch spaces when activating an application.


dope! Was that introduced in Snow Leopard? My apologies.


Genius. I used 4 spaces for some time and stopped using them without a conscious reason why - it just felt inconvenient switching between them. But now reading this it becomes clear why - the need to scroll through all spaces and no muscle memory of a needed move to get to specific space have developed over months of trying to use them.

For more than 4 spaces, it could be a grid still, because you have to look at them anyway to actually remember where you need to switch to. For 4, this is a must-have change. So it will be the same grid as used for 9-spaces setup, just without the corner and center blocks.


I've long used[0] a 3x3 layout and mapped the numeric keypad so that each number takes me to a desktop in that location. It was frustrating when Apple, for no apparent reason, removed the Fn+789uiojkl virtual numeric keypad for its laptops, but I found that KeyRemap4Macbook has a switch to make RightCmd+123qweasd do basically that, so I was able to adapt.

[0] Before I did 3x3 I did 2x5. Why? Because the keyboards on the Sun Ultras that we used in grad school had this 2x5 bank of keys on the side of the keyboard that I wasn't otherwise using....


I really wish Spaces would integrate with Cmd-Tab. Everytime I use Spaces, the only thing that bugs me is Cmd-Tab. If I'm on space 1, and I press Cmd-Tab, it shows all the open applications, which really doesn't make any sense (at least to me). If I'm on a particular space, I usually want to switch only between applications that are open in that particular space.

Does anyone know of any alternative to this?


I think you could use Witch. http://manytricks.com/witch/


to all the people worried about apple dropping spaces: Mission Control. Mac command central.

Mission Control is a powerful and handy new feature that provides you with a comprehensive view of what’s running on your Mac. It gives you a bird’s-eye view of everything — including Exposé, Spaces, Dashboard, and full-screen apps— all in one place. With a simple swipe gesture, your desktop zooms out to Mission Control. There you can see your open windows grouped by app, thumbnails of your full-screen apps, Dashboard, and even other Spaces, arranged in a unified view. And you can get to anything you see on Mission Control with just one click. Making you the master of all you survey.

from http://www.apple.com/macosx/lion/

and i don't see how the above using the arrow keys in such a manner is superior to just using ctrl-space# for quickly switching between up to 9 spaces


You could set this up today with something like keyboard maestro. http://www.keyboardmaestro.com/main/ - just remap the keys. You could create 9 spaces, only use top/left/down/right, and map the arrow stroke to the command to jump to a specific space


This is one of the reasons I've never liked (and never used) Spaces. I think this would be a better solution, even if it meant making the max number of spaces be four.


It it already like that but with the corners


yeah. this isn't a solution. this is a special case with its clear issues disguised as an 'open question'.

No dice.




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

Search: