1. 16
  1.  

  2. 7

    I’ve just started using NixOS on a Macbook Pro at work. I highly recommend using it rather than OS X. I only have two problems for features I don’t use anymore:

    • No Thunderbolt (I had kernel panics under Linux 3.17 which has Thunderbolt patches) - solution was to swap a Thunderbolt Display for some HDMI display
    • No webcam (but someone is working on it https://github.com/patjak/bcwc_pcie) - solution is to just get a USB webcam

    My OS configuration is specified and declared in files. I can use all of Nix for development, xmonad rather than Amethyst, Docker without boot2docker, ZFS, etc. Definitely worth the switch.

    1. 2

      I’d love to hear more about how day-to-day operations under NixOS work for you. Functional management seems like one of the most radical rethinks of “systems” in a long time; but also, unlike many such radical changes, one that could be really broadly useful.

      1. 3

        I do a lot of Haskell development at work and instead of using cabal sandboxes I can just use nix-shell, which shares prebuilt common libraries. No more compiling lens for each project.

        It’s easy to work on the OS itself, you just clone the repo, make a configuration (e.g. vmtest.nix) and run:

        NIXOS_CONFIG=$PWD/vmtest.nix nix-build -A vm nixos
        

        I can make installation scripts, create services and try them out before running them locally. It’s a very nice way to work on any part of the OS.

        I’ve put a chunk of my Macbook configuration on GitHub for people to check out:

        https://github.com/puffnfresh/nix-files/blob/master/configuration.nix

      2. 1

        Is Amethyst at least OK? I guess you’ve moved o NixOS, but I thought you were working on xmonad for OS X or something like that?

        1. 1

          I worked on osxmonad but backing X11 into Quartz Compositor is pretty bad. I started working on https://github.com/puffnfresh/iridium which abstracts away window management and has a partial Cocoa backend. I want to start an X11 one now.

          Amethyst is alright but there’s no scripting, no custom layouts, can be buggy and sometimes just stops working.

      3. 3

        I run Ubuntu (and nix-pkgs) and XMonad on my personal (I do a lot of OSS / private work on it) rMBP. Very happy with it.

        1. 2

          Nice timing. I’m on about year 4 (or is it 5?) of Arch + xmonad. I’ve always used Thinkpads, so there haven’t been any hardware support issues, but I do miss the OS X + Macbook battery life and it seems my wifi is always more spotty than coworkers/family using the same networks on a Mac.

          I was considering switching back to a Mac recently, hoping that one of the tiling “WMs” on OS X was decent these days. Are they all bad? I assume I’d just ran an Arch VM for actual development needs and use OS X as a “skin with good battery life” + iTerm (to the VM). Am I crazy?

          1. 3

            I was considering switching back to a Mac recently, hoping that one of the tiling “WMs” on OS X was decent these days. Are they all bad?

            Yeah, I just tried Yosemite on my Macbook Pro before reinstalling Ubuntu+xmonad. They’re all bad. Mostly don’t even really work properly.

            1. 2

              Is the battery life that bad? I guess I can’t compare since I only ever used a 15" MBP, but the batter life on that one is comparable to the one in my 13" Thinkpad.

              Though using a VM on OS X might eat more battery than if you just used Linux on the metal.

              1. 1

                None of the alternate window management add-ons on OS X are really worth a damn. They really can’t be, because they always end up fighting the platform. This doesn’t bother me, but if you’re looking for something like ion but able to control native windows, you’re going to be disappointed. I use Optimal Layout, which allows me to easily resize windows, but it’s a far cry from when I used to use FreeBSD and X-Windows.

              2. 1

                I have a rMBP, but I’ve never given up Linux. Thing is, I find it perfectly alright to use cloud instances whenever I need Linux functionality. I always have a few lying around that I can ssh to for what I need. That has worked for me, and often has been much better. On Google Compute Engine, my instances have a very flexible relationship to their disks, and I mix and match things all the time. It’s extraordinarily convenient, especially for the type of work I do.

                1. 1

                  A new job requires me to use a MBP and it’s been very frustrating for me as a very long-time (over 10 years) ion (now notion) user and as an Arch user. I will think hard about taking another job in the future that won’t let me provide my own tools. Yeah, it’s nice to have wifi just work, but for development, the window management feels like slogging through quicksand, and homebrew … well, I don’t want to criticize homebrew too much, I am very glad to have it and it’s far better than nothing, but it doesn’t hold a candle to any real package management system that is integrated with the OS.

                  I played with Amethyst but it didn’t seem especially useful. I spend most of my time in a full-screen iTerm with tmux and/or Emacs approximating some kind of tiling. It’s livable but not great.