

Ask HN: New job is having me switch from Linux to Mac – how do I cope? - ecaron

I&#x27;ve been using Linux over 15 years, and since 2005 I&#x27;ve been at startups where I controlled my destiny and ran whatever the heck I wanted on my work computer (typically Linux Mint Debian Edition on a Lenovo.)<p>Well, I took a new job and it starts on Monday (5&#x2F;4). And part of that job is using the machine I&#x27;m given. As is. Which means a MBP running OS X.<p>Any real world tips that you can give me to ease the change?
======
balls2you
Install VMWare Fusion or VirtualBox, give it most of your RAM and hard disk
space. Now run Linux on that. That's your best bet for sticking to Linux for
most of your work.

You can use browser on the Mac if you want to be able to use the latest and
greatest firefox/Chrome but for coding and software nothing beats Linux. All
the OS X brew/ports etc are just not good enough compared to apt-get.

You can run the VM using VirtualBox in background mode too and then just ssh
to it using the Terminal.app or iTerm.app on OS X.

Copy-paste works really well on iTerm so you can copy-paste links from your OS
X browser like Firefox/Chrome to the ssh terminal and use it in case you
download software using wget/curl sometimes.

For email, Thunderbird/Mail.app both work really well on OS X and that should
be good enough unless you want mutt, which you can then use from your Linux
VM.

Most likely your production environment is Linux, esp. if you're in a company
that is giving you Macs so most likely web development. Even better if you
mimic your production environment in your VM and develop on that instead of
developing on a non-standard environment like OS X and then hoping stuff works
in production. (Tons of devs do this and it makes no sense.)

~~~
wrighty52
Personally, I'd suggest using something like Vagrant instead - more
lightweight in my opinion, in terms of being able to instantly destroy &
create a new one with 2 commands.

Although, saying this, there's no reason the OP can't just install Linux over
(or alongside) OS X.

~~~
johnward
I'm curious as to what makes Vagrant more light weight as it still needs some
type of VM software.

~~~
ecaron
Its more the discipline that Vagrant creates in letting you repeatedly
generate the same environment.

------
bitshepherd
OS X isn't a huge cultural shock. It's mostly getting your head wrapped around
the dock and some hotkeys, and it mostly Just Works. I made the switch a
couple years back after over a decade of hardcore Linux or BSD on the desktop.

Once you get a terminal to your liking, it should make things less obtuse and
let you get a feel for the operating system.

~~~
PeterWhittaker
Ditto. In fact, I switched because I grew envious of how much easier
everything was to do on the MBAs used by my daughter and wife than on my
Ubuntu laptop. I'd sit at one of their machines, use the trackpad for a
moment, just a moment, and miss the gestures on my DV7.

One day, in a moment of frustration, when Libre or Open or Braindead Office
got too much in my way, I slammed the lid down, yelled "I'll be back in an
hour", had my own MBA set up and working to my liking 90 minutes later, and
haven't looked back.

~~~
hyperliner
I did the same and actually felt kind of bad that we live in a place where we
are able to go kill two grand just like that.

However, I felt bad for only about two minutes, and then forgot about that
until I read your comment.

 _sigh_

------
Revell
Why are you being forced to use OSX? Why not just install your distro of
choice on it?

Other than that, use iTerm2[0], Homebrew[1] and Cask[2], this'll kickstart
your CLI env in the right direction.

    
    
      [0] http://iterm2.com/  
      [1] http://brew.sh/  
      [2] http://caskroom.io/

~~~
frou_dh
I never understand the instant dismissal of the stock Terminal.app

Yes it's not the most featureful terminal emulator in existence but it's well
put together and works just fine.

~~~
atonse
For me, the main reason I moved to iTerm2 was because terminal only had
support for 16 colors (I think ... it was 4-5 years ago). So I just use iTerm
now out of habit. I didn't have any other issues with Terminal.app.

And I suspect most others have similar reasons.

------
haack
Try and keep an open mind.

I used to be a die-hard Arch user who would never consider even buying a mac.
Was given a macbook at an internship and haven't looked back... Well, I have.
I love it though. Give it a month to start getting productive though.

As Revell said, Homebrew is a must-have. (Also fish[1], but that applies to
Linux too).

[1] [http://fishshell.com/](http://fishshell.com/)

~~~
Revell
I've been looking at alternative shells a while back and Fish looked
interesting indeed. What made you choose this one over regular Bash and ZSH?
Also, how do you deal with incompatibility issues (if any) and different
environments (f.e. when SSH-ing to a server)?

~~~
haack
I only use Fish interactively. It has really nice autocompletion (which I'm
pretty sure reads my mind), and cycling tab completion which I like. Also oh-
my-fish[1] is awesome.

Last I checked it was maintained by one guy, meaning support isn't always
great.

I still use bash for scripting (can't get away from it) and when compatibility
is an issue.

[1] [https://github.com/bpinto/oh-my-fish](https://github.com/bpinto/oh-my-
fish)

------
penguinlinux
Hi There, I work at a startup and we all get Mac Latops, I installed
VirtualBox and allocated 100Gigs and 4G of Ram to a Linux Mint virtual machine
on my Mac OSX instance and it works great. I get so use all the features of
the mac and I can do all my work on my linux machine. You shouldn't have a
problem if you use a virtual machine.

Good luck in your new job.

------
CodeGenie
Some general tips for OS X (subjective of course)

\- Spaces are akin to Workspaces (Three finger left/right swipe) and are great
for running VM's fullscreen.

\- Use gestures (Two finger/Three finger Left/Right/Up/Down swipe or
grab/spread)

\- Spotlight (Command-Space) is handy

\- Give Safari a fair try but you mightn't like it (I switched from Chrome
last year and am loving it)

\- I never use Launchpad (Grab gesture)

~~~
dysfunction
Alfred is even better than Spotlight alone, I have it mapped to option-A and I
never launch apps any other way.

~~~
CodeGenie
Thanks dysfunction, good tip. I haven't looked at Alfred in a long time. Out
of interest, for you, what differentiates Alfred from Spotlight in Yosemite?
Having a quick look, Alfred having 1Password is excellent. Spotlight though is
great for an instant Calculator and Currency conversion. Does Alfred support
these OOTB? It looks pretty flexible, could I write something to integrate
these?

Do you have the powerpack? Is it useful?

------
genericusername
I've been running into the same issue since last week. (Linux user being
forced to switch to OSX)

All the terminal thoughts mentioned above are good although there are still
some weird BSD idiosyncrasies that you'll have to cope with (cp missing the
link switch, find requiring an explicit target, etc) Ive also been using tmux
and it makes the default terminal a bit more bearable.

Here are my biggest gripes thus far switching from Debian Jessie with KDE:

\- The window management is laughably bad in OSX. I installed two extensions
(divvy and cinch) to add window docking functionality which helps slightly but
they are free only in that they pop up requests to pay every once in a while.
Apparently there are some better extensions but they cost money and its my
opinion that my workflow is my employers problem, not my monetary
responsibility.

\- Using virtual desktops on OSX after becoming accustomed to the Linux
implementation sucks. Its is far less featured than KDE (at least out of the
box) and a lot of the extensions to make it better seem to cost money. The
desktop switching order is linear and it randomly changes the ordering on you
while you are using it. There is also no concept of docking a window across
desktops or opening a window on multiple. In fact, when you maximize a window
it switches desktops on you.

\- The firmware for the thunderbolt display is terrible. The USB ports keep
shutting off randomly requiring you to unplug and replug the thunderbolt.
Doing this totally screws up all your window sizes and placements. I generally
have a full screen terminal on a virtual desktop and it causes it to underscan
the window until I close and reopen it. Extremely irritating.

\- I don't really like the focus management in OSX but this is more a minor UX
irritation. My issue involves clicking on a text field inside a different
application and instead of having the text field gain focus, the application
gains focus but not the internal text field. Many a time have I entered text
into the wrong entry field in the browser.

All this being said, Apple hardware is really excellent. Some of the
peripherals are a little bit too 'designed' and not as functional but they are
not unmanageable. The software needs some help and I still may switch to Linux
in a VM at some point. For now I figure that I might as well give OSX a chance
before I completely bail on it. The Apple fanboys would never let me hear the
end of it.

~~~
tthayer
Regarding window management: I use an excellent little free app called ShiftIt
([https://github.com/fikovnik/ShiftIt](https://github.com/fikovnik/ShiftIt))
that makes window management way better. Uses maybe 20MB of RAM and plays nice
with multiple displays.

~~~
genericusername
Interesting, thanks. Im going to give it a try.

------
popeshoe
My biggest problem moving to OSX (from mostly windows) was the idiotic apple
UK keyboard layout (US keyboards might not be such a big deal, so this stuff
might not apply) so I found myself having to download a regular UK keyboard
layout ([http://liyang.hu/osx-british.xhtml](http://liyang.hu/osx-
british.xhtml)), and Karabiner
([https://pqrs.org/osx/karabiner/](https://pqrs.org/osx/karabiner/)) to make
OSX behave properly with my normal keyboard with the pageup/down and home/end
keys

Once I sorted that out it was a relatively pleasant experience.

You might also want to install SmoothMouse
([http://smoothmouse.com/](http://smoothmouse.com/)) which tames OSX's
ferocious mouse acceleration curve, and reduces the delay between moving the
mouse and the screen updating to be imperceptible

------
CodeGenie
+1 for running dev environments in virtual machines.

I tend to run them headless (Shift-Click in VirtualBox) mapping my dev folder
using samba (Command-K in Finder maps to a samba drive) and ssh into the VM's
CLI using iTerm.

It's a great way to retain environments at the end of projects.

Would love to hear your thoughts after a month? The good and bad obviously...

------
Arubis
Keep in mind that OS X is POSIX-compliant, but it's a customized BSD, not
Linux. A lot of stuff works the same (and it'll compile most of your code
without issue), and it's certainly a lot closer to what you're used to than a
Win system (how that's POSIX compliant boggles me), but a lot of Linux-
specific stuff isn't where you think it is.

You'll need to find alternatives to /sys and /proc. Services are managed with
launchctl, which is kind of a pain. X Window support is there but clunky. And
so on.

While you're living in a console, working on your own code, though, things are
close enough to forget about most of the time.

Best of luck!

~~~
davidgerard
> Keep in mind that OS X is POSIX-compliant, but it's a customized BSD, not
> Linux.

And that if you're used to BSD ... it's weird as BSDs go. (Just little things,
but I found it slightly jarring in practice.)

------
metaphorm
echoing others I suppose, but I'll also recommend running a Linux VM as your
dev environment.

at my dayjob I'm using an iMac and managing my virtual machines using Vagrant
which loads an image of an Ubuntu Linux machine (same distro as used on our
production servers). its a convenient setup in several ways. This keeps my dev
environment a close match to the prod environment, and it lets me install
packages quickly and easily for development using the usual Linux tools. I
also get to continue using the superb desktop interface that OSX provides.

------
freedevbootcamp
A MBP running OSX is almost as good as a Linux laptop but with a better GUI.
Just be happy they didn't give you a windows laptop. In the corporate world
you would have to be a unicorn or rockstar to get a MBP. If you were a Linux
sysadmin you might get away with running a Linux laptop but very doubtful. I
love my Linux and my iMac 27inch no problem running brew to install things on
OSX. Your MBP will be able to run vagrant and virtual-box which is Linux
anyway.

------
pjungwir
I use Linux as my desktop but have an Air for traveling. Switching between
them is not so bad. :-)

Lots of great advice here, but I still remember being surprised that on OS X
(and BSDs I think?) a trailing slash in a directory name is significant, e.g.
here:

[http://hints.macworld.com/article.php?story=2005111210000737...](http://hints.macworld.com/article.php?story=20051112100007372)

Keep that in mind when running `cp` etc.

------
jedi_master
Its a unix OS... it works the same. Some commands vary a bit but its largely
the same. If you hate it, ssh into a linux box.

------
MalcolmDiggs
Is dual-boot not an option? Or... if you're not allowed to do that, you could
always use a live-cd or live-usb version of your favorite linux distro. Might
run a bit a slower, but maybe a live-usb running off of a SSD drive with a
thunderbolt connection would be fast enough.

------
photokandy
You'll probably transition fairly easily. Mac OS X is a customized BSD, so
although it has differences with respect to Linux, it's also not that foreign
either.

* Remap Command and Control if your fingers can't adjust to the change in shortcuts. System Preferences > Keyboard > Modifier Keys

* If you want TAB to work with all widgets (which is what makes sense to me): System Preferences > Keyboard > Shortcuts > Full Keyboard Access: All Controls

* Not sure where a menu command lives? Search for it in the Help menu's Search field.

* Spotlight is a pretty good launcher, calculator, and more. Command+Space is your friend.

* If you need additional keyboard remapping support: [Karabiner]([https://pqrs.org/osx/karabiner/](https://pqrs.org/osx/karabiner/)) and [Seil]([https://pqrs.org/osx/karabiner/seil.html.en](https://pqrs.org/osx/karabiner/seil.html.en))

* Time Machine is your friend.

* Grab [iTerm2]([http://iterm2.com](http://iterm2.com)). Apple's terminal is nice, but iTerm2 has so much more. If you use tmux, iTerm2 has support for that, too.

* Install [Homebrew]([http://brew.sh](http://brew.sh)) for package management.

* [TotalSpaces 2]([http://totalspaces.binaryage.com](http://totalspaces.binaryage.com)) gives you even more control over how your spaces are arranged, animations between them, and keystrokes for accessing them. Can't live without it anymore.

* Window management sucks. I use [Moom]([http://manytricks.com/moom/](http://manytricks.com/moom/))

* I've given up on Apple's Mail.app. I use Gmail, and [AirMail 2]([http://airmailapp.com](http://airmailapp.com)) does the trick for me.

* Use virtual machines where appropriate (VirtualBox, VMWare, Parallels, ...)

* Install your preferred shell if Bash isn't your cup of tea. I use [Fish]([http://fishshell.com](http://fishshell.com))

* [F.lux]([https://justgetflux.com](https://justgetflux.com)) is your eye's best friend.

* [Bartender]([http://www.macbartender.com](http://www.macbartender.com)) keeps all those pesky menu items under control

* If you want to really customize your gestures and the like, [BetterTouchTool]([http://www.bettertouchtool.net](http://www.bettertouchtool.net)) can be useful. For awhile I had my "Windows+E" muscle memory tied to launching a new Finder window until I got over it.

Good luck! Give it about a week or so (if that), and you should be comfortable
in your new environment.

------
eip
Just run linux in a VM.

------
partisan
Take a deep breath.

You will likely find the transition to be jarringly pleasant. To ween yourself
off of linux, continue to use a VM on your MBP (I used vmware) to run your
favorite distro.

Keep calm and carry on.

