I always appreciate posts like these as a direct comparison for getting things done in linux vs a mac. For day to day I still personally feel there is enough on offer from my mac that I'd be driving around the n-x version of what I really want. However, that being said it's getting so much closer!
This is great! Rare to see FreeBSD with a GUI focus. Unfortunately I'm more likely to check out Macbuntu (which I didn't know about before) than try to replicate his setup.
There are many many things that makes life in macOS better than Unix/Linux, not least having Cmd-XXX that don't clash with Ctrl-. I love being able to use Emacs keybinding in nearly all text fields on Mac whereas on Linux they control the app and I feel my hands tied as I seek the cursor etc keys. The more my Linux environment can mimic macOS, the more time I'll spend there.
Sorry, I got a little discombobulated with your life in macos is better than unix/linux comment, but only because macos is unix. Thus life is better because macos is unix - unix with an excellent window treatment, no less.
If you are HN, you are expected to be able to understand that we all know that macOS is Unix and any reference to Unix/Linux means non-macOS. I contributed the first SCSI driver to Linux 0.12 so I've been around. Calling macOS "window dressing" doesn't suggest deep insight nor working experience with macOS.
The fact is that my professional working experience with daily driving macOS is, in my opinion, a nicer experience that the equivalent Gnome/KDE (though it goes deeper than that). Still I spend a roughly equivalent amount of time there (and some in FreeBSD).
Your always welcome back, I have a nice XPS 13 going with firefox, Vscode and a rust, go, javascript, and C development tools/environments going and its great.
Was it difficult to install the Broadcom drivers? I've been looking into using FreeBSD and given how they're a headache even on Linux, I imagined it was even worse for FreeBSD
Fairly cheap to pickup a USB Wifi dongle (and many of them are almost flush to the port), might be a better bet than a Broadcom internal card (thou no experience of FreeBSD with Broadcom, just a general thought).
Awesome peek into the FreeBSD desktop ecosystem. Being a long time Linux user, it was nice to get a peek at what seems the same and what isn't
The hardware is:
Lenovo ThinkPad X1 Yoga laptop
Intel Core i7-6600U 2.60 GHz CPU (Skylake)
8 GB RAM, 512 GB SSD
Intel HD Graphics 520 integrated graphics
14″ WQHD 2560 x 1440 touchscreen with Retina-like 210 dpi
Looks nice! When I saw Mac-like I secretly hoped they'd found a good aluminum unibody laptop I could throw linux onto. Can anyone speak to the durability and the flex of the chassis on these things?
I am not a hardware expert but X1 Yoga feels somewhat more flimsy than MacBook Pro, although not as weak as a typical modern mid-range laptop out there. I mean, if I apply a little force I can bend it a little if it's open. Can't do that with MacBook Pro of course. Not sure if that analysis is worth anything. I think I need to add a few more comments on the touchpad. Apple touchpads are too awesome.
I think the write up is good, functional. But it feels littered with "layer violations" of OS, WM, App.
His underlying OS abstractions that he can see are mostly good, OSX is a BSD-like OS, and he has good OS level analogues for most of what he engages with as an OS. I don't think day-to-day anyone realises "grand central" exists. Filesystem, I think OSX filesystem journaling is comparable in behaviour to ZFS. The whole 'is it case sensitive or insensitive' thing is a bit of a mystery to me: Why did OSX make that design decision?
Secure boot, crypted partitions, trust in the privacy of the system? I think comparable.
WM level, He's got clone-a-like things. He gets most of what he wants, I suspect I'd be good too.
App level, I think he's walked into a space where there is a tiny core of OSX apps like Preview, which are just really hard to get in the free domain. If you run a mac with homebrew you're doing cask install of things which exist in ports or pkg, so there is a large overlap, but once you call up an OSX app like preview, you have gone into a space its hard to replicate.
Chrome users will see next to no difference if you live inside chrome. Electron app users would see little difference.
I don't know I'd walk directly to libreoffice, if I could get O365 working. But the moment where you have to install linux runtime compatibility laters, or Java, are the moments where for me pain re-enters the room: these things are not always nice to live with.
It feels like more of the Linux desktop world is increasingly tied to things that are either dispositionally incompatible or incompatible license-wise with the BSDs. For example dbus, Wayland, and systemd are all problematic for BSD for various degrees of problematic.
If I were interested in a long-term stable desktop ecosystem on BSD, and I were part of a core team, I’d start a cooperative project to build BSD-licensed cleanroom implementations of launchd, the NeXTStep APIs, and a desktop environment that stayed as close to macOS metaphors as possible.
I have to imagine that there are some corporate sponsors who’d be delighted for a mostly source-compatible, BSD-licensed path to writing apps for both macOS and also appliances and other devices.
A while back Sony seemed poised to work on a NeXTStep compatible UI layer, going as far as posting some code IIRC, before pulling the plug.
The big sticking point the last go-around was adding Mach IPC to FreeBSD. Mach IPC affects the security of the system in potentially subtle ways (it seems Apple struggled with Mach IPC security for a while in the early days of OS X). In addition to security concerns, there was a question of whether FreeBSD should have Mach IPC, as a sort of project identity question.
Some suggested using plain Unix sockets instead of Mach IPC, but the effort required for that seemed to be very non-trivial.
There was some concern about XML plists, which no one is excited about, but I view those as somewhat trivial. (FreeBSD launchd could easily use a JSON or "libucl" format plist.)
Finally, the developer behind the Mach IPC and launchd port didn't really want to do the politics required to land a big change like this. I can't really fault him that; it's tedious and thankless.
The "dual-pane file manager" is more usually termed an orthodox file manager.
Umlauts and suchlike, on the kernel virtual terminals at any rate, are a simple matter of picking the right keyboard map and putting it in /etc/rc.conf ; and custom keyboard maps are not particularly hard to create. The GUI is a different kettle of fish, though.
Boot environments would help with a couple of the points raised, too.
> I still can’t get Firefox smooth scrolling to work right
I'm not sure if it's the same on FreeBSD, but as a longtime former Mac user who now uses Linux, I've found you need to
1. set MOZ_USE_XINPUT2=true to get per-pixel scrolling
2. disable smooth scrolling, either completely in preferences, or just for mousewheel by settings general.smoothScroll.mouseWheel to false in about:config
23 comments
[ 3.4 ms ] story [ 64.0 ms ] threadThere are many many things that makes life in macOS better than Unix/Linux, not least having Cmd-XXX that don't clash with Ctrl-. I love being able to use Emacs keybinding in nearly all text fields on Mac whereas on Linux they control the app and I feel my hands tied as I seek the cursor etc keys. The more my Linux environment can mimic macOS, the more time I'll spend there.
The fact is that my professional working experience with daily driving macOS is, in my opinion, a nicer experience that the equivalent Gnome/KDE (though it goes deeper than that). Still I spend a roughly equivalent amount of time there (and some in FreeBSD).
The hardware is:
Looks nice! When I saw Mac-like I secretly hoped they'd found a good aluminum unibody laptop I could throw linux onto. Can anyone speak to the durability and the flex of the chassis on these things?His underlying OS abstractions that he can see are mostly good, OSX is a BSD-like OS, and he has good OS level analogues for most of what he engages with as an OS. I don't think day-to-day anyone realises "grand central" exists. Filesystem, I think OSX filesystem journaling is comparable in behaviour to ZFS. The whole 'is it case sensitive or insensitive' thing is a bit of a mystery to me: Why did OSX make that design decision?
Secure boot, crypted partitions, trust in the privacy of the system? I think comparable.
WM level, He's got clone-a-like things. He gets most of what he wants, I suspect I'd be good too.
App level, I think he's walked into a space where there is a tiny core of OSX apps like Preview, which are just really hard to get in the free domain. If you run a mac with homebrew you're doing cask install of things which exist in ports or pkg, so there is a large overlap, but once you call up an OSX app like preview, you have gone into a space its hard to replicate.
Chrome users will see next to no difference if you live inside chrome. Electron app users would see little difference.
I don't know I'd walk directly to libreoffice, if I could get O365 working. But the moment where you have to install linux runtime compatibility laters, or Java, are the moments where for me pain re-enters the room: these things are not always nice to live with.
Principle of least surprise. Decision predated OSX.
What non-engineer thinks “name” and “Name” are different names?
I recall this, and just Googled, found a Lisa era engineer says the same:
https://www.quora.com/Why-does-OS-X-choose-to-have-a-case-in...
If I were interested in a long-term stable desktop ecosystem on BSD, and I were part of a core team, I’d start a cooperative project to build BSD-licensed cleanroom implementations of launchd, the NeXTStep APIs, and a desktop environment that stayed as close to macOS metaphors as possible.
I have to imagine that there are some corporate sponsors who’d be delighted for a mostly source-compatible, BSD-licensed path to writing apps for both macOS and also appliances and other devices.
A while back Sony seemed poised to work on a NeXTStep compatible UI layer, going as far as posting some code IIRC, before pulling the plug.
* http://jdebp.eu./FGA/launchd-on-bsd.html
* https://news.ycombinator.com/item?id=13899766
* https://news.ycombinator.com/item?id=14983970
* https://news.ycombinator.com/item?id=15161361
I mention nosh there. I am going to release version 1.38 soon.
Some suggested using plain Unix sockets instead of Mach IPC, but the effort required for that seemed to be very non-trivial.
There was some concern about XML plists, which no one is excited about, but I view those as somewhat trivial. (FreeBSD launchd could easily use a JSON or "libucl" format plist.)
Finally, the developer behind the Mach IPC and launchd port didn't really want to do the politics required to land a big change like this. I can't really fault him that; it's tedious and thankless.
Umlauts and suchlike, on the kernel virtual terminals at any rate, are a simple matter of picking the right keyboard map and putting it in /etc/rc.conf ; and custom keyboard maps are not particularly hard to create. The GUI is a different kettle of fish, though.
Boot environments would help with a couple of the points raised, too.
I'm not sure if it's the same on FreeBSD, but as a longtime former Mac user who now uses Linux, I've found you need to
1. set MOZ_USE_XINPUT2=true to get per-pixel scrolling
2. disable smooth scrolling, either completely in preferences, or just for mousewheel by settings general.smoothScroll.mouseWheel to false in about:config