Switching from linux to mac

So, I caved. I crumbled like a biscuit in a blender. I am now the smug owner of a MacBook Air, and it really is wonderful. I went 10 days without rebooting before needing a firmware upgrade, and both sleep and wireless work flawlessly.

Here are the bells and whistles that make my brain and fingers happy.

Spaces (OS X Leopard’s virtual desktops doodad) isn’t as good as KDE’s, but it turns out to be fine once you turn off the auto-swoosh by typing these two commands into a Terminal:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO

killall Dock

Before, switching to an application (such as Firefox) that didn’t have a window open already on your current desktop would cause you to be whisked randomly to the first desktop which did have a Firefox/Terminal window open. Now, you can switch to Firefox, hit Cmd-N and a window pops up, ready to go with minimal context disruption.

MondoMouse makes it easy to move and resize windows. By default, moving a window involves awkward trips up to the title bar. The tiny resizing handle is even more awkward, and more awkwardly situated, and is often overpowered by an overeager Dock. Now, I just have to hold down Cmd and move the mouse to move the active window. Holding down Cmd and Alt resizes. Again, this doesn’t work quite as nicely as KDE – for instance, the windows don’t snap satisfyingly into place when they get close to other windows or the edge of the screen. MondoMouse is available for a trial period, after which it costs $15.

Various other niceties deserve a mention. I currently prefer the Carbon Emacs over Aquamacs, though there’s not much to separate the two. Quicksilver, Expose and hot corners are great. For Dashboard widgets, I’d recommend iStat Pro, Word of the Day and maybe Album Art. Adding cdto to Finder is handy. Skim is the way forward for reading PDFs in full screen. Alarm Clock for timers. Cyberduck for accessing other computers over SSH (along with MacFuse and SSHFS).

Some things are just broken on the mac, and will probably never be fixed. Steve Yegge has described his heroic failure to civilize the mac’s shiny silvery savagery with proper focus-follows-mouse behavior. In general, OS X’s switching behavior is wrong in a few respects. The application (rather than the window) is the wrong level at which to switch, and so Cmd-Tab is always jarringly confusing to use. There are still kinks with the way that windows activate and bring themselves to the fore, especially when multiple desktops are involved, and I seem to lose a modal dialog to this problem about once every few days. MacPorts and Fink are workable but still disappointing – having two package systems devalues both, downloading binaries is preferable to compiling every time, and the packages are generally patchier than Debian’s apt-get. Finally, X11 is very clearly a second-class citizen, but works tolerably well. Oh, and unbelievably, the regular expressions engine in Python 2.5 appears to be maddeningly sprained!

There were a few pleasant surprises. Two-finger two-dimensional scrolling is unutterably wonderful. The MacBook Air’s colossal touchpad is very pleasant to use, even for nipple-lovers. OS X applications are pretty consistent about keyboard shortcuts. You can re-learn most muscle memories without too much effort so long as you don’t have to switch back and forth between the old and the new too much in the first few weeks. Emacs is still Emacs.

11 thoughts on “Switching from linux to mac

  1. As far as things being “proper” – that is all a matter of perspective, and based on where you come from, is that not so? The much maligned SPACES, seems to be primarily because of the CMD-TAB switching between applications, going to the SPACE where the application was opened, not necessarily the SPACE where the desired window of that application is open. (Open Safari windows in multiple SPACES). Ignoring for the moment, that the computer has no idea which window you want to switch to when you CMD-TAB to an application, it is this retention of this CMD-TAB approach to application switching that is creating the uproar. What I have found that works really effectively, is to assign SPACES to the middle mouse button (scroll wheel) on my mouse. Pressing this takes me to the multi-space view, where I just click on the desktop where the workflow windows that I need are located, and it just goes there. I always end up with the my defined set of application windows AND in the right SPACE.

  2. Why did you switch to the Mac?!?I t seems to me, that you tweeked your Mac in every possible way to behave like Linux, and it’s only “almost as good” as the real thing.Why not stay with Linux?

  3. I think it’s all a matter of perspective as to what is broken. The Mac is application centric, not document centric and so switching between applications makes much more sense as you can access an application that has no windows open.

  4. @kirk: thanks for your comment, kirk. i think this is exactly what i was trying to address with the auto-swoosh Terminal setting…

  5. Re: Cmd-tab switching@anonymous: Yes, you’re quite right that Cmd-` switches between windows. But here’s the thing – in order for a keyboard shortcut to be useful, it has to be simple enough that I can automaticize it. In other words, the rule for using it has to be simple enough that my fingers can understand it without needing to engage my brain. Unfortunately, every time I want to switch to a nearby window, I try and use Cmd-Tab, get the wrong thing, then my brain gets surprised and has to step in. This disruption pushes something useful out of my working memory. That’s why the Windows/Linux Alt-Tab behavior is better – because its usage is straightforward enough that it can become an automatic habit.

  6. Greg, you are confusing “what is better” with “what you are used to”.I think once you get used to command tilde, you will grow to hate the Windows way of having all your other apps getting in the way of just wanting to cycle between all open windows of the current app. Command tilde is just as simple to remember as command tab, but is more granular. Also, I think if you give Expose more of a try, you’ll also find that it is a God-send and allows you to quickly jump to the window of an app you are interested in with a single mouse click rather than having to press command ~ (or worse command tab) innumerable times to cycle thru every other window/app just to get to the window you’re after.Remember – “different to what you’re used to” does not necessarily mean worse and in fact can mean much better once you get used to it.-Mart

  7. @martin: Yes, you’re right that I’m exhibiting a curmudgeonly resistance to forming new (and perhaps even more efficient) habits. Even after a short time, I’m very attached to and fond of the combination of Expose, Spaces and hot corners.I’m relatively convinced about the automaticization point though. I wish I had usage data to back this up, but my intuition is that I switch between applications 80% of the time, and between windows about 20%. That’s enough to mean that the default Cmd-tab is wrong one in every five times I try and use it. Conceptually, a Terminal window running ipython and a Terminal window with a shell aren’t the same “application” to me – at least not to my fingers – and so I’m not even convinced that the application/window distinction is always useful.

  8. I just learnt this keyboard shortcut a few days ago: ctrl-F4 will cycle thru all open windows in the current space (irrespective of which App the window belongs to). So this would be equivalent to ctrl-tab on windows.The only problem I have is that I have to press the fn key on all keyboards I use, and it is not yet part of my muscle memory.-deepak

  9. Let me get this straight… you bought a $2000 computer loaded with tons of proprietary, closed-source software to…

    1) Use Firefox, a FOSS, extensible web-browser available across all major platforms.

    2) Pay $15 for what is given by Alt+Drag in any sane non-tiles window manager (including Xfce, KDE and Gnome)

    3) Use the horrid atrocities that are the versions of emacs on Mac (granted the Gtk versions of emacs aren't much better)

    (Can't complain about QS or Adium, even if we do have Gnome-Do and about a million different IM clients [Empathy, Pidgin, Kopete, etc] on *nix)

    4) Use an obnoxiously limited and pathetic file manager (sorry, but Finder sucks ass)

    5) Use an FTP client which is written using a language with bindings no longer officially supported (deprecated since 10.3 or 10.4)

    6) Use unofficial package managers instead of the “standard” method of installation involving .dmgs and .pkgs

    7) Use an old version of Python (2.5? Really?)

    8) Two-finger scrolling, which also works in X with proper configuration.

    9) Use a very crippled, ugly, poorly done implementation of one of the most commonplace–I daresay standard, features of just about any window manager on *nix: virtual desktops.

    No offense, but you bought a consumer device marketed to the ignorant, what were you expecting *besides* a sub-par “power user” experience?

Leave a Reply to Anonymous Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s