From Mac to Linux – the setup I've grown to love(shooting-unicorns.com)
I use Windows/Linux/macOS.
From a performance to value perspective you cannot beat Linux. Docker/Microk8s the overhead is so low. Dev speed is leagues ahead the unfortunate circumstance of having to run Docker/Minikube in a VM on Windows and macOS. Also filesystem IO is unreal compared to Windows at least.
Getting a refurb Thinkpad on ebay and having better compute hardware than a mac pro for half the price is also a nice cherry on top so to speak. That and the insane sales Lenovo has all the time for brand new machines is kind of hard to beat as well.
Next up is Windows from a hardware perspective. Same refurb thinkpad can dual boot without issue.
Then lastly macOS. I have had a mac since 2011. I am having a hard time with the direction Apple is going with their laptops.
I have all 3 and they all have their merits, but I find myself using Windows/Linux at home exclusively and macOS at work and I don't mind the context switch.
To each their own!
With the uncertain future of mac with their potential switch to ARM and not shipping python and ruby by default, I see some drawbacks to the dev ecosystem. I know brew will package a ruby version to handle this but I do worry about the ARM switch.
Linux used to be quite difficult, but I stuck with Ubuntu and the UX/UI has improved so much :)
> Then lastly macOS. I have had a mac since 2011. I am having a hard time with the direction Apple is going with their laptops.
This, a thousand times this. I had a discussion earlier this week with the owner of a Mac repair shop of 15+ years here in Toronto, who lamented the release of any Mac portable since 2015 - saying 'thank God for the 2012-2015 units, or I would be out of business.'
I told him I'd been buying Macs for 15 years, and during especially times like buying my first iBook at age 15, I absolutely relied on, and still rely on, purchasing a laptop with the intent to upgrade the RAM and the HDD/SSD in the future.
With the laptops continually increasing in price, justified by tacking on useless features nobody wants, and then preventing upgrades, the laptops are out of reach for me to justify as an intermediate iOS developer. The 2017 models locked to 16GB are already virtually obsolete to a serious developer or film editor.
I will not, would not, on principle, buy a computer whose hard drive is soldered to the Logic Board, if only for the sake of retaining the hard drive itself aside from the laptop.
There is no possible, potential benefit a soldered hard drive, or soldered RAM, gives me, and the detriments far, far outweigh any benefits.
Previously, if the hard drive or RAM got corrupted or damaged, I could replace those parts the same day. What now?
Truly - and I mean truly, butterfly keyboard and lack of ports aside, even internally, Apple has finally gone from questionably being form of over function, to its focus on form over function being a literal insult to its long term dedicated users, and simply not responding to criticisms.
So the media laughs at the Touch Bar, fans and critics deride it, and Apple's response - to cancel the non-touch bar version of the 13" MacBook Pro.
You mention the RAM and hard drive, but it irks me more my keyboard is not replaceable. It's the most used moving component of the entire unit. It's exposed and susceptible to damage the easiest. I've hated every MacBook Pro since the release of the unibody. My favorite was the PowerBook 12 and 17.
I've had a MacBook/PowerBook Pro (and Thinkpad) since Titanium and the First MacBook Pro and if it wasn't for the fact of macOS and the convenience of being in the Apple ecosystem with their iPhone, TV, HomePod(s), Watch, Music, and iCloud I would be back on Linux (I actually came from FreeBSD on my Thinkpad). I'm currently using a 2017 and 2018 MacBook Pro. The 2017 would be great except the keyboard (and of course the soldered RAM/HDD) is absolutely trash. The 2018 is much better, but nothing like a Thinkpad. I also miss the Trackpoint, but the Apple Trackpad is good.
I miss my Thinkpad (+ BSD) bad, but being an iOS / web developer and entrenched in the Apple ecosystem (which I honestly like the convenience) I feel stuck and hard to even get a secondary machine. I even leave a fully maxed out P53 and P1 (I can't decide which one I want) in my Lenovo cart ready to buy at a given moment.
What's so good about the apple ecosystem everyone hounds about? I don't see why you'd want to lock yourself into paying 5x more for every tech product you'd ever want. All of that stuff has an Android equivalent and Bluetooth now. It's not 2011.
You get more than just the eco system which is must just part of the experience. The hardware is that much better. It boils down to you get what you pay for. I value the convenience of what I need or want just working as well as the quality of the devices, especially compared to the alternatives. It's also not 5x as much, but I'm thinking you were exaggerating.
> My favorite was the PowerBook 12 and 17.
Golden, golden days. Every other film editor and director I've ever met, I've had a talk about how blessed the 17" G4 was (at the time).
The keyboard keys fit the shape of your fingers.
You could also walk into the Apple store. Go to the back corner. Pick up a box with a new battery in it for $119 (iirc). Buy it and walk out with a new battery. All in a single day. You could also order them online.
And replace them yourself without catching on fire, or whatever "safety" issue they keep blabbering on about...
The screen bezel was symmetrical enough to keep my OCD in check.
I have had 3 MacBookPro in the last 4 years. Had to, because of some development for iOS I had to at my job.
Never had a Mac before, everybody was saying they were fantastic. You'll see, coming from Windows, what a difference, they would say.
The first had some serious hardware failure which made it reset at random times. With time the resets became more frequent until it became impossible to use it. I gave it back to IT with the order to destroy it.
The second had the infamous keyboard. God knows how much I hated it. Random keys wouldn't work, but most commonly the ones you need more, like shift. Thanks Apple. Went to IT and told them to throw it in the bin.
This last one I got has the horrid touch-bar which starts the bloody Siri 3 to 5 times a day because my finger randomly flies by the up-right corner of the laptop (typically when I am looking for the backspace). I hate it. The network sometimes goes away, for unknown reasons, until I reset the network card. Recently, the screen sometimes shows some worrisome fast-disappearing black areas.
You'll see, they would say. Very reliable, they would say.
I've had a few Macs - and my 2013 MacBook Air is still going very strong, but my 1yo MacBook Pro's keyboard has been replaced already, which is a serious issue, to the point where I doubt my next laptop will be a Mac again for that alone.
Other than that though, I think you might just have been unlucky. In professional env, I've seen bad units with pretty much every brand out-there. It shouldn't happen, but it does. In my experience, Apple will replace these without much fuzz, but their service, certainly towards businesses, is a far cry from that of for example Dell.
The Touch Bar complaint is just you not investing enough time with the system to get to know it. You can disable siri, and completely customise the touch bar.
Have you tried customizing your touchbar to address at least that annoyance? Obviously things like butterfly keys you can't do much about, but you can do something about the touchbar.
I am so sad this has been your experience. From my first iBook G3 in 2004 to my last 2012 13" I have only ever had the most positive experience with the combination of hardware and software.
Oh, how the mighty have fallen.
My wife has my old 2012 MacBook Retina for some hobby iOS development. Apparently all her friends are envious because it's the last Mac that doesn't suck. I don't know if it's true or not - but I replaced that one with a Dell because, as I always do when I buy a new machine, I consider my needs, the cost, and the benefits of the hardware, and for the first time in a decade Apple didn't come up on top. So maybe I agree with them too.
I switched from Linux to Mac about six years ago, because I believed it's better. Now I think that it wasn't worth it and I'm not even talking about money. It's overhyped. From the start, I was annoyed by various things (some things worked just better on my old Ubuntu), but recently I'm becoming fed up with it, mostly because of carbon, finder, lacking bash utils, touch bar, and crashes. I'll be switching back to Linux+Windows.
What? I haven't dealt with Carbon API's in forever. Care to add more detail?
I meant that Mojave does not support Nvidia drivers . Sorry, I've confused Carbon with Metal, the 3d graphics API.
There were also a ton of people asking for a lower end Mac Pro. So what does Apple do? Make the highest of highest end computers ever! $6000!
It's like their product management is run by sadistic assholes.
I know of a ton of people asking for a MacBook Pro with a keyboard that doesn't suck, but I genuinely haven't heard many people asking for a "lower end Mac Pro." The trashcan Mac Pro, love it or hate it, clearly positioned the line as the intended spiritual successor to old SGI workstations -- the ones that started around $10K in 1999 money -- and the new Mac Pro is doubling down on that.
"Lower end Mac Pro" sounds an awful lot like the "xMac," a Mac that would be more like an iMac but a box that takes cards, which is something that some folks have wanted for literally two decades at this point. It's clearly not what Apple wants to bring to market. The low-end headless desktop Mac is the Mac mini -- and I suspect it would be a great machine for a lot of developers. That doesn't mean it's what you want, and I'm not saying you're wrong to want something else! I am saying, though, that "Apple won't make my dream Mac" isn't a sign of sadism.
Such a ridiculous stance for Apple. I am 100% convinced that the xMac would double their desktop computer market share.
I agree. Their decisions seem almost intentionally against what their vocal user base is asking for.
From removing the non-touch bar MacBook Pro model, to the ghastly price of the new Mac Pro, to their refusal to create an upgraded iPhone SE-sized model - Apple has started to shove things down the user base's throat now more than ever.
Apple has always been guilty of this to some extent, but for me, it's offerings worked with me, my workflow, and their direction grew with me - I embraced the move to Intel, because, as a developer, being able to dual-boot, and eventually even virtualize the dual-boot with parallels, was excellent for me. (Waiting for Office 2008 and the Universal Adobe CS3 package, however...)
The point is - Apple has always at least provided options in the past that were, well, options. At this point, there is no option in Apple's lineup I would keep for free - I'd simply rather sell a new MBP and create a hackintoshed Lenovo ThinkPad in a heartbeat than actually use any of their offerings on the daily, which I can say from experience, as I happen to have to use both on the daily.
Completely agree. I've been saying this since 2012 when the Retina machines came out, and skeptical since 2009 when they moved to non-user-replaceable batteries in the MacBook Pros.
I don't think I've actually ever had a non-Apple main notebook, and that goes back to the 1990s!
That said, I only tolerate the 2013-2015 rMBPs, use one for my main personal and work laptops, but the soldered RAM pisses me off (a lot, because my personal machine only has 8GB and my god is it hard to find a 16GB model for a reasonable price in the used market), and the proprietary storage irks me. Thankfully 10.13 supports NVMe with an adaptor, which to me basically confirms that there was zero reason for Apple to use the proprietary stupid thing in the first place.
As for any machine they've built after 2016, well, I don't want them. I don't want a butterfly keyboard with no travel that breaks with a skin flake. I don't want screens that stop working because they use a flex cable connector that's too short. I don't want a touchbar if it means no function row. I don't want to give up MagSafe. I don't want to give up my SD card slot. I don't want to give up USB Type A. I don't want a massive trackpad, and I don't want the fscking T2 chip.
In fact, the only things on the >2016 machines I do want are the faster CPUs and GPUs, the better quality displays, and Touch ID!
... As for Lenovo though, they're slowly into Apple 2.0. Have you seen the T/X x90 and X1 series? Soldered RAM. At least they still make the X1 Extreme and P series.
It’s easy to dismiss since it was obsolete for so long, but the new Mac Mini is actually a pretty capable machine - 6 reasonably fast cores, 32 gigs of ram, fast storage, and 10 GbE onboard. I’ve been extremely happy with it.
And if you need it you can add an external GPU for an extra graphics boost.
But nothing from nvidia, correct?
Currently no, or at least not if you want to run the latest version of MacOS.
> I know brew will package a ruby version to handle this...
Not to mention brew is vastly inferior to most Linux package managers (apt, yum, pacman, etc.)
Until you need/want some project that's relatively new and you pine for the days of brew. Technically inferior Perhaps but often much more up to date. :/
Linux distribution often have a parallel system for bleeding edge software.
On Ubuntu, it's snap.
I think the way to go is adding PPAs.
But yes, I agree we have great ways to have the latest and greatest.
not only on Ubuntu. I installed it on my PureOS machine. Works like a charm.
Not a problem with Arch packages and the AUR.
I heard great things about AUR when moving to Arch but honestly I've been unimpressed. A lot of stuff is already exists in official repos for other distributions, and I don't actually care about bleeding edge versions, just ease of install. And most of the time in my experience, AUR packages aren't very recent, or aren't configured how I'd like.
That said, you can just customise the PKGBUILD yourself, and even then it's no real stress to build from source yourself. Even if you then stabbed yourself in the eye with a pencil, it'd still be a better system than on MacOS or on Windows.
The problem I find with Arch Linux, and this really only has started happening recently, is that for some reason Arch loves to break stuff. My most unstable distribution had to do with Arch. I find that distros like Void and Alpine Linux offer more robust rolling release systems.
What in particular has broken for you? I've had the same Arch install for almost 6 years now, with no breakage at all. (Other than once or twice when I decided to reconfigure something and screwed it up. Always recoverable though, without a reinstall.)
I personally find that Alpine offers the least robust, because it doesn't even have a package mirror, so once a package gets updated (especially in Edge), then you can no longer download the old package, unless you build and sign it yourself. Arch has been incredibly stable for me, even more so than Ubuntu or Debian.
> The problem I find with Arch Linux, and this really only has started happening recently, is that for some reason Arch loves to break stuff.
Then I must be lucky. I've been using arch on my dev machine without notable breakages for about 2 years.
I've considered switching to arch because of that.
Manjaro has access to the AUR as well, and it's as polished as any distro I've used. For me it's the clear winner for developers and hobbyists
I completely agree. Having used Manjaro (xfce and i3 variants) as main OS for half a year, it has been a good experience.
To be fair, I can't compare with other distros as this was the first time I used Linux as main OS.
I always assumed this is because Linux package managers such as apt and yum are first-class citizens on the platform, while Homebrew is a bit of a de-facto solution on macOS.
This still holds, right?
No, macports is non-native as well and is an excellent, stable alternative, although Homebrew has slightly better coverage. Homebrew's main issue is that it was written from scratch, ignoring lessons from 30+ years of package management experience, and there's no obvious benefit that doing so has brought. Compared to macports, which is based on freebsd ports, Homebrew is brittle and normal operations frequently result in an inconsistent state.
In my experience, unless your needs are extremely basic, sooner or later you'll run into an issue where the solution is basically to commit nuclear warfare on your filesystem and start over again. Also, expect to rely on random blog posts and stack overflow as the de facto user's guide (which maybe is just the state of the world for everything now.)
I've honestly never found a good reason to use brew instead of macports, aside from an annoying hipsterism. Welcome to try to convince me otherwise.
Macports is good, I'm also a fan of pkgsrc.
As to Homebrew, I don't understand why it complains if I use sudo to do an install but then also complains if I'm not running as an admin account! If there's a reason for this splitting of hairs, I don't know what it is.
Could also have a lot to do with Ruby. Chocolatey is way worse though (Windows).
Try Scoop on Windows instead of Chocolatey.
shrug use Mac for the generally superior UI, interface hardware, and app ecosystem, ssh into a Linux VM/server/workstation for the generally superior development experience. Best of both worlds.
Would be nice if Apple stepped up in respect to tools...
Totally tangential, but who could have predicted, 20 years ago, that in 2019, more than zero people would be talking about having to use Macs at work, then going home to their comfy PC. How the turns table. I increasingly don't have strong opinions either way (pros and cons to everything, etc.), it's just such an unexpected timeline we've ended up in.
If it wasn't for Microsoft pumping millions into Apple around that time we very well may not be having the conversation now either.
I also use Windows, Linux and MacOS, but mostly Windows.
The "Moby" VM on Windows is a bit annoying - it takes 30s or so to start the Docker engine, bind mounts/volumes are a bit pernickety, and resource use is obviously higher than without a VM. Having said that, once it's started everything works pretty well, with containers starting almost instantaneously.
I believe there are some IO perf issues if you're using WSL (I don't use it much, preferring git bash for most things).
Both of these issues should be fixed when WSL2 finally arrives. But unless you're on an Insider's build, I believe that's going to be 2020 (someone please correct me if that's wrong).
Alongside pouring resources into the Windows Subsystem for Linux, it would be nice if MS would put some resources into a Linux Subsystem for Windows. That is, do for WINE what they've done for Cygwin.
They have hardly done anything for cygwin.
Windows NT had Windows Services for UNIX, replaced by Subsystem for UNIX-based Applications on Windows 2003 until Windows 8, eventually replaced by Windows Subsystem for Linux, given that now Linux API compatibility has became more relevant than straight POSIX code compatibility.
I agree. I would argue that bring powershell to Linux is a good step in this direction, but it's missing some key components (Active directory...) still.
Don't worry about Active Directory, just sign up to Azure.
I love MacOS. The only reason I have windows at all is for a few games. That being said, Apple has gutted the Macbook lineup.
The hardware, especially the keyboard and touchbar, are utter trash and reminiscent of the dell and HP laptops around 2008, which were the reason I dumped those brands in the first place.
All the pointless dongles were a moronic excuse to make thinner machines. They forgot about function and also failed to realize that aesthetic doesn’t matter if the keyboard is literally a dumpster fire.
I wonder sometimes if Tim Cook is becoming senile or if he just don’t care since the iPhone was printing money.
I remember when it was the opposite. My PowerBook G4 from 2005 had DVI and S-Video. S-Video! Why would anyone in 2005 need an S-Video port?
Projectors. Was a big deal back then.
The Docker/IO perf story is changing with WSL2 significantly.
Yes indeed! And I will gladly attempt to finally dig into WSL at that point. For now I just use choco and pwsh and I find myself productive with go/node/elixir/rust without needing WSL just yet.
I mainly use Windows for games but every now and then I don't want to leave my desktop to make some changes to a repo while my character is respawning/spectating or something haha
WSL2 is going to be awesome for sure
I’m loving WSL2 on my Insiders build. But there are issues with local host networking and file updates to Windows apps right now that need to be worked around
But it is very fast!
The Insider build also green screens less often than the most recent general release did!
Having Github available for issues is great too, as you can see progress being made in fixing the bugs - I feel more connected then when I actually worked inside Microsoft!
I'm curious, are you still experiencing issues with localhost networking? I'd read that as of build 18945, those issues should mostly be fixed.  Or is it that you're hosting applications on Windows and trying to access them from Linux?
Some people still are - mine now works. I think it depends on your Linux server binding to 127.0.0.1 or 0.0.0.0
I’m currently working on cross host code, so being forced to use the Hosts file actually helped me out!
I haven’t tried going from Linux to Windows via localhost though
I do have issues running multiple Selenium tests with a headless browser. Running 1 process works ok though
5 years too late
Which Thinkpad model do you recommend?
And which Linux distro do you use?
I'll go ahead and drop my preferences here as well:
The X1 Extreme is nice. It is one of relatively few PC laptops that are comparable to the 15" MBP in terms of performance (H-series processor rather than U-series) and portability. It has upgradeable RAM/SSD, so I got the base model with the upgrade CPU then purchased 32GB/1TB separately and saved something like $600-700 as a result. With slightly better cooling and a 3:2 display I think it would be nearly perfect.
Concerning distro, if you want to "just get work done" I recommend Ubuntu if like the way it looks or want to use one of the non-Gnome desktops. If you do like Gnome but but like the Ubuntu desktop, Fedora is great.
I have the X1 Extreme since December. Running Ubuntu 18.04. My experience with it was in short - "the worst possible ThinkPad that I had in 15 years" - and I had 8 ThinkPads.
Maybe I am unlucky. I bought it because I finally wanted a 15" screen with a centred keyboard, i.e. without the num-pad, because uncentered for touch typers is really really weird. It started that in order to get Linux running I had to switch the graphics card to discrete mode, at least this is what I found on Internet. This bricked the machine and according to the Lenovo support thread I was far from alone ! Luckily I had on-site 24h support, so called. They were able to come only after a week... With the wrong board... With travels in between I had in total to wait for 1 month to make the machine work.
Now it works and I am using it and trying to accept it.
- It is extremely loud! BIOS updates made it better as of lately and I got a bit more used to it.
- It gets extremely hot. So hot that actually typing on it gets uncomfortable.
- I am not able to do any meaningful work for more than 3 hours on battery. With my last X25 with 2 batteries I was able to work a whole day!
- The screen is like a mirror! I found a workaround by trying to work as much as possible with white background.
- And finally, but this is probably more the fault of Ubuntu/Gnome/nVidia - it is the laggiest experience ever! I mean, I am working most of the time in a terminal! Typing on the terminal is so laggy, that I do not even remember back to 1995 when I was starting using Linux to have such a laggy experience. Come on, this is supposed to be the most powerfull machine that I ever had?!
- Using external screen is possible only when switching ot nVidia. When using Intel graphics card (to prolong battery life) you cannot switch on external screen.
- Another, but probably this is Gnome/Ubunut/nVidia annoying thing is, that as soon as I lock the screen in Gnome, the fan starts turning like hell and the temperature rises! Come on, is Gnome screensaver mining bitcoins or what? I mean, I configured it to just turn off the screen when I lock it! And instead of saving energy it is heating the planet!
By now I spend so much time trying to configure, update and whatever that I am really tired of it. I mean, I have work to do! I am trying to prepare to go to NixOS, because I heard from some people that they got it configured to be usable. Preparing for this slowly, when I can dedicate time.
It's not all bad though. There are some positive things:
- I like the physical build quality. It feels solid and sturdy.
- The screen (I have the 3840x2160 resolution) brightness, resolution and colors are really good. To watch photographs or to see movies. Unfortunately working on text is only possible with white screen. Otherwise it is like a mirror. It would even be possible to work outside, but you need to have electricity, the battery life is horrible.
- I like the keyboard. The touch depths is nice and I have the impression that it is a bit more distinctive than on the prior models that I had (X25 and T450s).
- The CPU power is more than enough for me.
EDIT: Typo, s/X24/X25/
I use a t490, 500nit retina display with 100% ARGB. Upgradable ram, well one slot but more than enough for a JS dev. excellent keyboard. Was running Manjaro, but switched to Ubuntu Budgie. Workhorse machine for getting shit done.
Props for recognizing the awesomeness that is budgie!
Not gp, but I currently use a Lenovo T 480s dual booting Windows 10 Pro and Ubuntu 18.04 LTS and it's the best development setup I have used so far. No driver or hardware problems whatsoever.
Second that T480s, love it. 24GB RAM, 2TB SSD. Booting OpenBSD, macOS and Linux. Scaling on WQHD display works solid. Only drawback is that the WWAN (4G) only works under Linux and the touchpad is not as good as in a MacBook Pro.
Yea this is a great route as well! Considered it but found a deal I couldn't pass up on a refurb x1c6 haha
YMMV but I use a X1 Carbon 6th Gen. 1080p/Matte screen. No dual boot so some things to tweak but not much at all tbh.
Installed erpalma/throttled from github to squeeze my CPU perf to max. Also make sure to set sleep to S3 in BIOS. Otherwise nothing else to do. Everything seems to work just fine.
The 7th Gen just came out so there might still be some issues but I would look around and see if it's good to go.
I use Ubuntu 18.04 LTS. Once 19 is done I will more than likely move on to 20.04 LTS
My 7th gen X1 works on Ubuntu out of the box, except for an annoying trackpad bug that can be fixed with a one-line config file change.
Oh good to know! Thanks for the info
I use a 6th gen X1 Yoga at home (for its oled panel and integrated wacom tablet) and an 8th gen X1 (non-yoga) at work. (note - the generation I refer to is the processor generation, ie the 6th gen is an i7-6600u, which lenovo calls a first gen x1 yoga)
The yoga needed some tweaks to get the OLED brightness to work correctly, but other than that they basically worked out of the box under ubuntu 18.04. My only complaints are that the oled panel only came in gloss and has since been discontinued (although there are rumors that a 15" 4k oled will be available on the x1 extreme), and that the mouse click on the yoga is several orders of magnitude too loud. The trackpoint buttons are fine and the keyboard is great, but the trackpad click is loud enough to hear in the next room over.
I still use a T420 and T430. Both are great for development use. The screens are lacking, but when you spend most of your time in the terminal or browser, you don't really notice.
T5x0 (Avoid the T540, the touchpad buttons are supposedly shit.)
I'm running a T530. Max out the ram, get a ssd, it's great. I'm probably on my third one, I keep buying junkers for $50 from eBay for the parts. I majorly abuse it. The magnesium frame likes to crack near the heatsink, the steel frame around the screen likes to crack 1 inch above the hinges, don't spill water on the table it's sitting on.
T480 archlinux and kde
I come at this from a productivity perspective after using Mac's for several jobs - Linux boosts my productivity by 30-40%. Anecdotal, sure, but things just work in Linux and your not constantly having to fiddle around and click through things. It could also be that Mac's have declined in quality and I can put Linux on nearly anything and it lasts forever, especially when you put it on high quality gear that just doesn't exist at Apple.
My experience is somewhat opposite. I love Linux. I've used it for over a decade in various roles. But it always ends up the same - either some obscure Bluetooth or graphics bug frustrates me to the point I can't stand it anymore, or I get fed up with 2 hours of battery life and go back to macOS.
In this case, I'm measuring my productivity by the time it takes to mess around with the OS to get the desired result, and the fact that the stability baseline just never seems to get there.
I get and support the attraction to Linux on the desktop, but find YMMV to be very much true.
Yeah, this is exactly my experience too.
I try to move over every six months to a year or so, and it's the same gripes every time at this point.
Driver support's reasonable now, and the desktop environments are generally solid enough, but things like mixed DPI work really badly on Linux, my browser nearly always tears when scrolling on my secondary display, etc.
But... the single biggest killer for me though is how badly Linux copes with very low amounts of free memory. Put 32G in a machine and it still periodically runs completely out under my dev workload and when that happens, the whole system becomes unusable and I have to hard reboot it. I'm not sure what macOS and Windows do differently, but it just doesn't happen on either of those two OSes.
I really want to have the freedom to pick and choose my hardware more, but at the moment I keep falling back to macOS.
It's a UNIX environment so it has the tooling I want and a solid GUI that works well.
There are discussions happening on LKML right now about how to solve this. I don’t have a link handy, but saw them either here or on LWN recently.
I used to have that problem too, but it went away when I stopped using JetBrains products :). Not for any reason other than the contract I was working on ended.
Then I shall live in hope that it will be fixed :)
And I didn't even have a JetBrains product in the loop, it was a mix of virtualbox and VS code, along with browser, mail client, etc.
To elaborate a bit based on my understanding of the issue: VirtualBox seems like a great program to tickle the issue.
During a memory pressure scenario, the kernel starts looking around for things that it can get out of RAM to free up space. If swap is enabled and not saturated, paging out some data to disk is a likely option. Reducing disk cache size works too. But... when the usual candidates run out, things have to get more clever. Things like shared libraries can get paged out! If one of those pages is requested, it can be reloaded from disk. Or, in the VirtualBox case, the mmap'd disk image can be removed mostly from RAM and have those pages loaded from disk as needed. Performance sucks terribly, but it keeps trucking on.
The wrinkle in all of this is SSDs. The out-of-memory (OOM) killer heuristically watches the system and kills off processes that cause memory pressure problems. These heuristics, however, are expecting these page-in and page-out operations to be slow (as they were on HDDs). On newer SSDs, the disks are too fast to trip the OOM killer into action! This is why, when this problem manifests, your disk activity light goes on solid, even if you don't have swap enabled. The kernel is sitting there trying every trick in the book, and the OOM killer doesn't see what's happening. Every individual page fault is handled quickly, there's just waaaaaay too many of them.
Yep, this is an accurate description according to my understanding of the issue too.
The lesson I've recently learned is that, for now, swap is necessary on Linux machines with SSDs. I've enabled zswap and added a 4 GB swap file to my machine with 16 GB of RAM, and the problem hasn't reoccurred for me since then. Supposedly, the memory pressure measure in the kernel gets a more accurate reading when swap is enabled, but I don't know for sure that that's true. At the very least, you can page out the memory you're using the least instead of file-backed pages, which is what happens in memory pressure situations on SSDs (as opposed to OOM killing).
Wow, that's a really cool explanation. Although, I've had an SSD in my desktop for 8 years now, it's a bit sad to hear.
I saw it as more of a Java problem on Linux than a Jetbrains one with Android Studio.
When Android Studio is run with large code base on emulator, memory issues were frequent in Linux with halting issues. SO has several such cases.
No such issues with macOS, even with mutiple Jetbrains IDEs in parallel(Same memory config).
I wonder how Android Studio is doing on ChromeOS, considering many of those are low end machines. I'm sure they had to optimize it, but I assume the issue would persist till the Linux kernel itself is fixed.
Another alternative for people who still love macOS but can't tolerate the dumpster fire that is the butterfly keyboard is to get a new Mac Mini, then get a monitor of your choice and righteous clickety-clack buckling spring keyboard to go with it.
Seconding this, the Mini has really reduced my periodic urges to upgrade my 2013 MBP.
I find that for low RAM situations that zram is very handy and allows for a graceful reduction in performance under memory stress rather than a cliff edge that you get with a swap partition.
zram has been replaced with some other technology (z-something, can't remember the name) that also compresses swap and removed duplicate pages.
And this is why many people like me stick to Mac. Yes there's a solution for it on Linux, but no I don't want to look for it, maintain it, and at some point when a new 'best solution' is available keep up to date with all that...
On Linux, the distributions do that for you. You don't have to, but if you want, you can.
On Mac, you can't, even if you want. So you won't see discussions like these, because Mac does not have that kind of visibility inside. If something is broken (and Mac has its share of broken things), you get to keep all the pieces.
I had the same issue. The solution I settled on (and have been very happy with) has been a Mac Mini as a polished front end/web browsing machine, and then a Threadripper workstation running Ubuntu that I ssh into and do all dev work on. The pleasure of OS X without being so limited by Apple’s hardware options (and extreme markup).
How big is your swapfile?
I'm really curious, what is your dev environment/setup like?
Have you tried earlyoom?
+1 to this as a workaround until the kernel finally addresses the issue. Earlyoom is a user space OOM-killer that kicks in before the system starts the mad paging dance.
Packages are available in Debian Stable (Buster), so they should be available in most child distros by now as well.
It seems likely that something can be done to make the behavior less perverse but I'm not convinced that the behavior CAN be better than something like earlyoom.
What makes earlyoom useful is the fact that you can tell the machine what is low value and likely to be problematic. I'm not sure that information can be determined automatically. I'm further not sure what a better strategy than start killing low value problematic processes when we reach a threshold looks like.
Do you have a swap partition?
I've been in a couple of interesting discussions about Linux memory management lately that enlightened me somewhat, and I won't claim to be an expert now, but I've been around the low-memory block enough to understand now that, there's no simple right answer to the question of "Do you have swap?"
"The Linux kernel has overcommit baked into the fiber of its being." I've begun to understand that this idea is so deeply engrained in the kernel that in a multi-tenant or desktop workstation, you simply can't extract it back out and "just provide enough RAM," unless you know the performance characteristics and you really mean it when you say "that should be enough RAM." If you don't have any swap and the kernel starts to run out of memory, it's going to start evicting whatever pages it can back to disk.
(Wait, pages back to disk? I told you I didn't have swap) Yes – the linux kernel can page things back to disk even if you don't have swap, remember all of the binaries you're running have originally come from that disk, and the kernel knows it doesn't strictly need to have them in memory until they are volatile, or you tried to read those pages again.
Having some swap gives the kernel something else to evict, so have a healthy amount of swap and Linux will find the occasion to use it for the least frequently used pages that are not already on disk. This will improve your "nearly out of memory" performance.
The second worst thing that you can do is put your swap on fast SSD or NVMe, and it's not why you think. The kernel is making decisions based on a heuristic which is complicated and well-documented, but inscrutable. If the solid disk is 50x faster than the spinning disk that the swap was originally designed to use, then swapping will cost less overall and the heuristic will lean on it as a strategy to keep the OOM killer away even more often. You may find your cache recycle rates going through the roof because things can be paged out to disk and re-loaded faster than should be possible. I don't fully understand this part, but I suspect the answer is "try to use Swap less, and be aware of when you are using it."
The kernel does really not want to kill off your processes, and it has more opportunities than ever to ensure it keeps too many balls in the air when you have asked it to do so. So, find a way to stay ahead of the kernel and know better. If you have a dock widget that tells when you are going above 50% swap usage, you can close some tabs before it gets to be an unrecoverable situation. It's a mystery to me why modern computers don't come with disk activity lights, as this problem we didn't need dock widgets to solve 20 years ago when literally every computer came equipped with one.
The best advice is to have enough RAM for whatever you're doing, and at 32GB "I think you've had enough." At any rate the one suggestion that I could give is, if you anticipate running out of memory (ever, and it looks like you still do), then you should be sure to have a healthy amount of swap, to me that's probably at least 5 or 6GB but YMMV.
But, 32GB for a desktop workstation really ought to be enough IMHO, so try to find a way that you don't run out? If you're eating all that memory up with VMs, try a lighter weight solution for your ephemeral workloads like footloose, which behaves like a VM in the ways you generally tend to want for your dev workloads, (like for example, it can run systemd like your deploy target most likely does, if you're using VMs to match the deploy target). Footloose doesn't impose the "VM's" whole footprint upfront due to actually being a container, so when you run out of memory it will be because your application workloads used too much, not because your virtual machine manager has grabbed much more than it needed.
All that being said, my daily driver is a Mac and I don't think about this stuff either, until it affects a server.
> I get fed up with 2 hours of battery life
As I'm typing this, I got 14hours and 33minutes of battery left and it's only charged to 83%. In hardcore scenarios out of the grid for a few days (where I go sailing) I got a few spare batteries. (the laptop is the Lenovo X270)
> In this case, I'm measuring my productivity by the time it takes to mess around with the OS to get the desired result, and the fact that the stability baseline just never seems to get there.
The time investment goes down significantly over time. After a decade using linux on as a daily driver, I don't remember the last time I've tweak anything.
> fed up ... and go back to macOS.
Same thing but the other way around. I stay away from my Mac except for:
- making sure my applications look good enough on a Mac and are usable
- making music as I'm not patient enough to relearn everything on a different platform but that's just laziness from my end
>The time investment goes down significantly over time. After a decade using linux on as a daily driver, I don't remember the last time I've tweak anything.
So, it gets stable after the first 4-5 years of tweaking. Doesn't that make the parent's point?
And after those 4-5 years, wont one have to get a new laptop at some point, upgrade to newer OS version, and adjust to whatever changes the FOSS projects like Gnome/KDE/etc did in the previous years all from the beginning?
>- making music as I'm not patient enough to relearn everything on a different platform but that's just laziness from my end
Just laziness? As if Linux has anything remotely as powerful/coherent as Live/Cubase/Logic/etc, Native Instruments, Arturia, and all the other VSTs?
> And after those 4-5 years, wont one have to get a new laptop at some point, upgrade to newer OS version, and adjust to whatever changes the FOSS projects like Gnome/KDE/etc did in the previous years all from the beginning?
But that's part of what I love about linux, my text-based configuration doesn't have to change because I upgrade, unlike on Mac where the name of some `defaults write` key suddenly renames or disappears altogether.
In the rare cases that something in a Linux distribution changes so much it upends your config, you're just a package install away from getting the old behaviour back until you want (if ever) to deal with it.
Reaper and bitwig run on linux. Plenty of reaper users come from other daws. Daw choice is mostly workflow preference than feature differences.
Vsts though... people use Carla that’s based on wine to use windows vsts. Results vary.
Yeah sure, I've heard it all. Let me guess: What you conveniently forgot to mention is how you only use terminal applications with a minimal window manager, which makes a comparison to MacOS or Windows completely pointless since their desktop environments are 40 years advanced and thus have to do a lot more computation.
There's very little net gain to changes in GUI. Most of the fundamental metaphors actually date from the MoaD, December of 1968, fifty-one years ago this year.
Actually, that still has capabilities lacking from "modern" GUIs.
jwz observed that "UI is different" years ago when discussing Safari vs. Firefox interface changes. (Wayback link to avoid his "special greeting" for HN visitors): https://web.archive.org/web/20120511115213/https://www.jwz.o...
I watch "normal" computer users struggling to keep up with even very modest changes to MacOS UIs. Which, for the record, are remarkably consistent with the first iteration, deployed in 2001, eighteen years ago. It's older now than the Classic Mac interface was when OS X was introduced (1984 - 2001: 17 years).
That's not the point.
What is the point of advances if not to provide greater end-user utility, functionality, ease of use, etc?
Again: changes in GUI demonstrably do not deliver that.
And good GUIs don't change.
Because in large part of the institutional cost of breaking shell scripts, TUIs don't change often (and tools violating this principle are quickly and sharply deprecated and/or replaced with those that don't). Which means that as a user (or administrator or programmer), the investment you put into using console tools tends to have an exceedingly long half life.
Mind: I'd given this deliberate and conscious thought in the mid-1990s when I was faced with a few possible directions to take my own computing career and use. I'd already seen numerous platforms, notably proprietary and GUI ones, change substantially, or die entirely. Seemed to me that the skill-preserving route would be with Linux or the BSDs. That's proved a good decision and rationale.
Even a "minimal window manager" -- say, twm or vtwm, provides extensive functionality and does not change. There's a hell of a lot to be said for learning a skill once and not having to either replace it with another, or keep obsoleting previously acquired knowledge and habits.
I don't use twm myself, outside occasional testing. One of the best and most skillful programmers I've ever known did use it, and had a highly tricked out configuration, almost completely keyboard driven, that let him fly around his display and workspaces with an amazing faculty. The fact that the windowmanager itself is flyweight and bedrock stable only added to this.
My own preference is WindowMaker, based on the design principles of NextStep (1988), and largely static since the late 1990s. It has capabilities modern WMs and DEs still lack, is extremely high performance, and extraordinarily stable. Graphically, it's nonobtrusive. I might swap it for a tiling WM, but it's served me well for over two decades.
> After a decade using linux on as a daily driver
I mean, this is hardly an endorsement for people early in their careers who haven't already concluded the Linux is the best path forward.
Actually, it is.
I'm in my fourth decade of technical activity. I'm leveraging skills and tools I learned in my first day using Unix, in the mid-1980s.
Over the same time, I've gained, and obsoleted, skills on CPM, MacOS, VM/CMS, MVS, VMS, DOS, Windows 3x, WinNT, and classic Macintosh.
Yes, there are a few flavours of Unix -- BSD, SysV4, Solaris, HPUX, Irix, AIX, FreeBSD, and numerous Linux flavours. Those, and even OSX/MacOS share far more in common than all the other platforms.
Unix knowlege has proved extraordinarily durable, as have the tools. Though there are new utilities and environments coming out frequently, old standards remain available and still work. I'm not forced onto that treadmill, most especially not for my personal work.
GRRM still uses Wordstar. Works for him.
(That's ... one of the editors I've used as well, though I vastly prefer vim these days -- one of those "first day on Unix" skillsets I'm still earning dividends on.)
I'm not exactly sure the GRRM point hold true. He might write on Wordstar, but the distraction free writing environment hasn't exactly helped him finish books in a decade.
Have you seen the control-group results? ;-)
There's also Stephen Bourne, who had initially programmed in Algol, and has a bunch of Algol-like macros that he uses when programming in C. I'm not finding an original source, though several references turn up.
Muscle memory is a real beast to change. The local optimum is always "stick to what I know".
I've not had obscure graphics or bluetooth problems for like 4 years now. Graphics problems have not been a problem for the last decade.
I've been running linux desktops and laptops for about 20 years, starting with early/pre-RHEL redhat, and moving around to many others. My first laptop was a pentium thing at 75 MHz, and I triple booted Linux, OS2, and Windows/DOS on it. I wound up kicking off the last two, as I used them only infrequently.
Battery life is an issue for me, but its not linux specific. The laptops I have, all have power hungry ram and GPU cards. I get 2 hours on them, or if I play with the brightness and other things, I can stretch it to 4 hours. My old 2010 laptop (still in use, still running linux) is a 16GB ram, 0.5TB SSD affair with an NVidia GTX560m card. My 2018 laptop is a 48GB ram, 1.5 TB SSD (0.5 + 1.0) with an M2 256GB SSD for the included windows 10 home, and a GTX 1060m card. Windows 10 on the newer laptop lasts about 2.5 hours before it shuts down. I now run the pre-installed windows 10 via a kvm with passthrough of the M2 into the instance.
All of these are currently running late model Linux Mint 19.2 with accelerated graphics.
Work laptop is a Mac 16 GB ram, 512GB SSD with an intel/AMD hybrid graphics bit. This will last 5 hours with significant tweaks to aggressive power off, and me not running any builds on it.
I like the mac for its physical fit and finish, weight, etc. But I need to bring the power supply with me, as I can burn through much of the power in a 2 hour meeting.
I like the linux machine for work, and everything else. It just works. The drivers just work. The networking just works. Single/multi displays just work. I have cinammon (display manager) set up to a very comfortable configuration.
I am hopeful that the day job will enable me to trade up to a bigger machine with linux and nvidia graphics at some point ... 32GB is bare minimum for a functional machine for me, 48->64GB is better.
My home office deskside is an older Sandy Bridge machine with 16 cores, 128 GB ram, old GTX750ti card, running the same environment as on my laptop.
Of course, YMMV.
> Graphics problems have not been a problem for the last decade.
Except one happens to have a laptop with an older AMD card or Optimus Intel/NVidia combo.
Older AMD? Any AMD card or igp made in the last 14 years works out of the box with Linux, save their newest GPU arch.
Tell that to my AMD Radeon HD 6330M, released in 2010, 8 years ago.
The open source driver still doesn't provide feature parity with the proprietary one that Ubuntu LTS dropped support for.
Namely hardware video decoding and OpenGL version.
Sounds more like AMD dropped support for Linux. It's shitty, but I'm not sure what you can expect from distributions if AMD stops updating their drivers for newer versions of xserver.
Yep, while you can still get the up-to-date driver for Windows, fully DirectX 11 compliant.
So this thing about marvelous open source AMD support, depends pretty much how much luck one has.
I don't have laptops with older AMD. My current laptop has the ability to switch between CPU and discrete GPU, but it doesn't work well even under windows, so I disabled it in BIOS.
AMD drivers have been hit and miss for a while, which is one of two reasons I tend to prefer NVidia cards. NVidia took time to make sure their whole stack works reasonably well.
what brand/model is your 48GB laptop? I'm shopping for something that can take lots of ram.
This is a Sager Notebook NP8156. There are newer models, including better NVidia cards. Up to 64 GB ram. I bought mine with 16GB and added 32GB. Very expandable. Battery life is 2-ish hours, though can be increased by reducing brightness.
Lenovo has a 32 GB max model, and HP has a 64 GB max model.
I've been using Linux full time for 3 years now and I agree. Linux comes with lots of little, edge casey bugs. Like a thousand paper cuts, they add up and hamper productivity.
I can finally say Ubuntu MATE 18.04 for me is pretty solid. There's still two issues I wrestle with, but other than that it's been very dependable for me.
When it comes to OSes these days, I feel like you have to pick the least bad one. A truly rock solid OS just doesn't exist in my experience.
Same. I use Linux (specifically Ubuntu) on my work/study computer and I love it.
But, weird hardware issues popped up now and then which I didn't have to deal with on my MacBook, such as the wifi card that had to be manually installed, the headphone jack sometimes doing weird things, the processors overheating.
I was able to solve those problems by searching online and finding others who had the same issue which lead to instructions to fix the problem, but I just can't imagine my family members who have never used the Terminal in their entire life having the same success.
The fact is that with my old MacBooks (and the computers I've given to my family) the only hardware related issue we've had over the last 10+ years is the battery related issues from the MBP.
I've been using Linux for the last two years, having switched from macOS, and I haven't had a single weird problem. Not one.
I use Arch Linux, and a combination of KDE and i3 so one would expect me to have a ton of rediculous problems. But I haven't had a single problem. It took me a single day to set up my computer how I wanted it (I've used Linux before) and I haven't had to touch a config file since.
Part of this might be that in using a Dell XPS DE, which is designed to work well with Linux, but I think it might just be a YMMV situation. And I do a lot of back end, applications, web and front end development (mostly in my spare time), so I think I've hit a lot of programmer use-cases.
Also, I get 15 hour battery life streaming 4K video on my 4K touch screen, and more doing other stuff.
I also used an Apple Magic Touchpad or whatever over Bluetooth with it, including gestures and it worked really well. Better, actually, as far as Bluetooth, than my Mac. I only stopped because it wasn't good for my hand and wrist health.
Just adding my anecdata. Overall my experience with Linux has been hugely positive.
> or I get fed up with 2 hours of battery life and go back to macOS.
Not sure about the Bluetooth part (i had this kind of issue once in like 10 years) but the battery life, getting 2 hours is not common anymore. Sure, you won't get as long as Windows on the same hardware more of the time, but 5 to 7 hours on a full charge is what you can expect, if not longer.
This and it's come a long way in the last 10yrs but it's more dependent on hardware. Optimus still an issue with nvidia (3hrs) vs 630(5hrs) and have to switch between. However, just bought a pair of (used) x270's to travel with - one has Fedora and the other windows 10. Linux lasts 8-9 hours and the Windows about the same (maybe less).
Maxed out X250 had been reported to last 26h hours online, with plain debian install, no tricks like Macs' "oh, you look outside, I'll go to sleep now"
Anecdotally, my cheapo $500 linux laptop gets a full work day (so 6-8 hours depending on what I'm doing, unless I run docker, then it gets maybe 3 hours tops) while my previous 2017 $2000 macbook pro typically got around 4 hours for the same type of work.
I did spend about 2 hours optimising for battery when I got the laptop, but it was a once-off thing.
I guess this all depends on your dependence on mobile hardware.
Bluetooth? I don't even use it. Battery life? I'm on a desktop.
It's a good idea to research any components for compatibility before buying them.
It's true that Linux won't run with all hardware, but this is even more true for MacOS ;)
I find that many people who say things like this have never actually tried to boost their productivity on Mac in the first place. As someone who uses Alfred, Karabiner Elements, Keyboard Maestro, Spectacle, Omnifocus, and a host of plugins on fish shell besides, it baffles me how slow my peers are at doing basic stuff they do twenty times a day. Just set up a shortcut, it's trivial.
Not so trivial on Linux. The fact that the author considers Firefox add-ons (!) a Linux feature is a clear indicator they never even tried on a Mac and were enamored by Linux due to the lionisation in the particular subreddits they follow.
Kind of like here! Not that there is anything wrong with getting excited about something. Just don't make sweeping generalizations.
Also, a small tip: You can put your Mac apps and configurations in Dropbox and they will show up and work as you expect across your multiple machines.
One thing I sorely miss after switching from Linux to Mac is i3. Spetactle gets close, but something as trivial(?) as switching window focus with the keyboard I couldn't figure out a solution for... Can Keyboard Maestro do it?
I haven’t used i3, but I missed good keyboard context switching support when I started using macOS. There’s some reasonable solutions out there, but my current favorite interface customizer is BetterTouchTool, which is setup to let you customize any input for any kind of OS function you might want. I have a 4-monitor setup so easy window/tile management is important to me. I have a handful of keyboard chords to put windows on the screen/quadrant combo that I want. My TouchBar is permanently set to media keys with media info + notification area + emoji keyboard. For keyboard control over focus, I use the Contexts app inter-app and ShortCat within app.
I personally use Contexts (https://contexts.co) for switching between applications. It functions similar to rofi's application switcher (fuzzy keyboard driven switching).
Yabai doesn't handle window switching on its own but it can use SKHD (https://github.com/koekeishiya/skhd) or any other application that can bind terminal commands to keyboard shortcuts such as Hammerspoon (https://www.hammerspoon.org) or BetterTouchTool (https://folivora.ai) or even Keyboard Maestro. The commands are context-aware of spaces and the placement of windows on the x-y plane so you can move between windows relative to their position on the screen.
Depends on your use-case. KM comes with an app-switcher out of the box that looks like this and can be controlled via Keyboard:
On another note, highly recommend Puush (https://puush.me/) for instantly taking and sharing screenshots without having to manually upload.
Anyhow, you're more likely looking for something like Amethyst.
Switching between windows of the same application:
I agree with your premise, I'd suggest Yabai if you're curious about getting the productivity of a power user on Linux using something like i3
I find the opposite (and I've used Linux since 1997, plus several other unices starting from Sun OS).
Things tend to just work on the Mac, even though I use it for a wide variety of tasks (programming mainly, writing, music, and video secondarily, plus some photo work). Music and Video (DAWs and NLEs) are almost a joke in Linux.
You have to be cautious to buy compatible laptop hardware, and still there's always something not working on new setups, usually sleep, sound, GPU compositor, bluetooth, etc.
Things tend to just work on the Mac, even though I use it for a wide variety of tasks (programming mainly, writing, music, and video secondarily, plus some photo work).
I'm pretty sure that would be my problem if I tried to move (back to) Linux. A lot of the HN crowd is (understandably!) focused on development, and the chances are your favorite dev environment is going to be good-or-better on Linux as it is on the Mac. But I can't find a screenplay writing program on Linux I personally like as much as Highland for the Mac, or a Markdown editor that I like as much as iA Writer or BBEdit for the "heavy lifting" of technical writing at work, or a graphics editor I like as much as Acorn, or a Twitter client I like as much as Twitterrific, or a Markdown previewer/converter I like as much as Marked, and and and. I know it's all subjective, but it's a sticking point. And the last I checked, at least, I couldn't find good equivalents to OS X Services/Quick Actions, which can be just amazing.
I'm sure if Apple really tanks, I could make the switch and hit a happy place, but it'd be turbulent for a while.
> I'm pretty sure that would be my problem if I tried to move (back to) Linux. A lot of the HN crowd is (understandably!) focused on development, and the chances are your favorite dev environment is going to be good-or-better on Linux as it is on the Mac.
Those of us into graphics programming, UI/UX are better served with macOS/Windows tooling, development enviroments and SDKs.
That is what triggered my move back into those platforms.
Those of us into graphics programming, UI/UX are better served with macOS/Windows tooling, development enviroments and SDKs.
That's been my observation and occasional experience. I'm more of a technical writer these days, but I've done light graphics and UX work at various points over the years and prefer what's available on the Mac. (My experience on Windows is pretty limited.)
For some reason I wrote macOS/Windows and not only Windows.
Also note that not every country is enamoured with Apple price levels, hence Windows for software that runs on both.
Then there are the games console SDKs, DirectX, high performance graphics with SLI cards, e-gaming, ...
> You have to be cautious to buy compatible laptop hardware, and still there's always something not working on new setups, usually sleep, sound, GPU compositor, bluetooth, etc.
Technically, there are more 100% Linux compatible laptops than macos dito...
That is true even if you limit yourself to thinkpads
It also works excellent on low quality gear, I have some Point of Sales with very old computers, they just need internet, a browser and a thermal printer.
Installed Xubuntu and forgot about those for years, the experience is still smooth, fast and the computers turn-on fast.
“Things just work in Linux” - please do share this magical setup you have because my experience over the last 20 years is that nothing just works. MacOS mostly works, Windows sometimes works, Linux never works.
I'm actually being driven to Linux by the absolute crappiness of Windows 10 and OS X. Oh, how the wheel turns ...
> Windows sometimes works
I'm going to take exception to this. Windows 10 has been a disaster for me.
Effectively, Windows 10 treats me like a "supplicant". "Oh, great computer, can you please do some work for me right now?" "I say NAY! I must now commence my Update Ritual. Please come back and ask again. But I make no guarantees."
Every ... single ... time. WTF!
> MacOS mostly works
Unless you want to do modern graphics and then you get the "joy" of learning Metal (or not). Or, you can simply throw in the towel and switch to Windows/Linux where you can use OpenGL and Vulkan. Valve is funding MoltenVK (a Vulkan shim on top of Metal) because it is more cost effective than dealing with Metal. Let that sink in for a minute.
And OS X hardware is a disaster. We've actually stockpiled used-2015 era OS X laptops in the office. At this point we have enough if someone has a laptop that goes down.
I didn't use Windows XP or anything since. I'm now using Windows 10 due to a work situation. But seriously. The Update Ritual happens out-of-ours when you're not using your computer. It seems to take a few days longer than it needs to (why not do it tonight? why must you ask me for days and days, and then finally do it overnight?). But it's generally quite reasonable.
I don't fully understand why Linux is able to do its system updates as one of several tasks, but Windows has to take over the computer to do it though. Is it just that if a Linux box gets stuffed during update, the user is probably able to recover, so the relative risks are different?
I've never had a minor update on Linux break the entire graphics stack like osx 10.14.4 did. And I've certainly never waited month(s) for a major breakage to be fixed. For an ecosystem with the smallest variety of hardware, they sure are bad at supporting it...
Upgrading to Ubuntu 18.04 broke my graphics stack. I couldn't even log on. The only option was to roll back to a snapshot of the previous system. The problem was acknowledged but not deemed important.
Unfortunately, as Apple tries to integrate more and more of the supply chain, and other computer-makers are copying Apple's business model, I predict that generic computers (the ones you install Linux on) will slowly disappear from the market.
> I predict that generic computers (the ones you install Linux on) will slowly disappear from the market.
It seems the be going the opposite way, since by far and large there's more offering hardware wise than there has ever been, so what you see is manufacturers catering to niches more than before.
Here in Germany, the majority of DIY PC shops have died or are connected to the machine selling parts over the Internet.
Everyone just buys laptops with pre-installed OSes, phones and tablets.
Most parts shops are now targeting the Maker movement, aka Arduino, Raspberry and friends and even gamers prefer solutions like Asus Republic of Gamers series.
So actually it looks like the return of the vertical integration of 8 and 16 bit home markets of yore.
Agree with vbezhenar that Apple doesn't really budge the needle to make this happen. And then you have vendors like Dell that are specifically catering to the Linux market.
Yes, but what prevents Dell from becoming more like Apple, e.g. by installing vendor lock-in features at the BIOS level, or work with Intel to install such features at the CPU level.
Also, you can buy a GPU but in some ways it is locked down (by NVidia), so as technology progresses we might be moving away from the "generically useful computer" model.
Because competition. It would only limit their market, not increase it. Dell competes with other laptop vendors in this "generic" market vs. the lock Apple has on their OS. And do you really think Intel would work with one specific vendor in this space to given them exclusive CPU features that nobody else would get?
NVidia has always been locked down so that is not news. If you are concerned about the GPU, buy AMD and enjoy their open drivers. Intel is entering this space too with open drivers as well. And who knows, perhaps NVidia might be opening up a bit after all vs. going the other way?
Android, ChromeOS and the now gone netbook market, show what happens when each OEM delivers their own Linux derived flavour.
Why is Android included?
I don't know, because it uses the Linux kernel and is a good example of OEM fragmentation?
Or should I rather write Android/Linux, ChromeOS/Linux, PuppyLinux, Xandros then?
I always wonder where apple is going to proprietary hardware. For example the “t2” chip, which seems to be a “computer in a computer” and only Apple. I suspect other hardware manufacturers just want windows to work for the most part.
From Wikipedia “Thge Apple T2 chip is a SoC from Apple first released in the iMac Pro 2017. It is a 64-bit ARMv8 chip (a variant of the A10, or T8010), and runs a separate operating system called bridgeOS 2.0, which is a watchOS derivative. It provides a secure enclave for encrypted keys, gives users the ability to lock down the computer's boot process, handles system functions like the camera and audio control, and handles on-the-fly encryption and decryption for the solid-state drive.”
There are similar things in PC land and most of the time they can be disabled.
Things do not look as good in mobile space (mainly thanks to Qualcomm)
I am not sure this is true. I believe that generic computers will be in the market until there will be people willing to buy them.
“Generic computers” were never a thing. For decades, every computer shipped with Windows, the drivers were for Windows, the hardware was only tested on Windows, and to make it work, Linux would usually have to pretend to be Windows (e.g. when evaluating ACPI). Except for Macs, which were the same but with macOS. Most hardware was not documented. If Linux support existed, it was thanks to the work of reverse engineers; it often didn’t exist. If you bought a random laptop, you could expect some of the hardware to be unsupported.
These days… I’d say things aren’t all that different. On one hand, Linux has better hardware support overall, and Dell and some smaller manufacturers are offering Linux laptops. On the other, a lot of hardware still doesn’t work, or doesn’t work well. Some laptops have been getting more custom hardware, including Apple’s and others, and Linux has fallen behind a bit in supporting it. But it’s nothing new for Linux to take time to support new hardware.
Apple's market share is tiny. They don't have any significant influence on generic computers. I don't really see other vendors following Apple's model. I still can build PC from different parts, like 20 years ago and it just works. While I did not closely followed non-Apple laptops, I believe that they are the same, just ordinary computers with ordinary parts which can run Linux just fine, if drivers are implemented. Glued batteries and welded SSDs are cancer, yeah, but that's more about overall quality of the product, rather than restricting Linux to run. There are enough "Enterprise" laptops which you can disassemble with screwdriver and they are not going anywhere because enough people understand their value.
Isn't it a bit harsh to say that the company that practically shaped the very form of modern computers doesn't have any significant influence?
Well, I still can't install Linux on a phone. This tells me than once freedoms are lost, they don't easily come back and as we get new technology, it doesn't necessarily allow to run Linux.
What are some of those things? (Curious question, haven't thought of switching yet but could try if it's worth it.)
I'm curious to this as well. I recently got a desktop computer to supplement my MacBook, and am now using Ubuntu as my more-or-less primary OS. I'm quite enjoying it, but I certainly wouldn't claim that it works better out of the box than MacOS. Perhaps it's because I've used Mac for so long, but I can't think of anything that I find difficult to set up. Ubuntu on the other hand has several issue that I've just sort of ignore - keybindings don't always work, you can't drag to/from the Desktop for some reason, some startup programs don't always run, little things like that.
> I'm curious to this as well. I recently got a desktop computer to supplement my MacBook, and am now using Ubuntu as my more-or-less primary OS.
I have used macOS as my primary OS from 2007 to ~2017 (before that BSD and Linux). I am now mostly back on Linux, though I also have a MacBook Pro that I use every now and then. Primary reasons for switching back to Linux:
* MacBook hardware limitations: too few ports, keyboard problems, expensive upgrades.
* Competitive hardware prices for Linux. I got a NUC8i5, which was somewhere between 300-400 Euro and has the same quad core CPU as my 2000 MacBook Pro. I added a 500GB SSD I had lying around and 16GB RAM. I have more resources for a fraction of the price, and can always bump up the SSD or memory relatively cheaply.
* Nix. There is package/system management before and after Nix. I actually started with Nix on macOS, but being able to manage your whole system declaratively is awesome.
* The subscription disease on macOS. I am fine with buying good applications. Overall I have probably spent thousands of Euros on licenses for macOS software. But I will not use an application with a subscription model. Period.  It transfers a huge amount of control from me to the software vendor. Unfortunately, more and more macOS applications are switching to subscriptions.
* Linux is generally faster than macOS.
There are also things that I like about macOS: Apple's strong push for security (including sandboxing of applications, T2, etc.), fewer issues with drivers and random paper cuts, better support for hardware decoding throughout applications, traditionally strong 3rd-party applications (OmniGraffle, Little Snitch, LaunchBar/Alfred, Things, OmniFocus, etc.), integration through AirPlay, handover, et al.
 Admittedly, there is one exception: 1Password, we like using it for password sharing and arguably, you are paying for a cloud service.
Are you a developer?
I think the productivity aspect would only be true in that case, as the things that “just work” are (for me) external libraries, GitHub readmes, sdk examples, etc.
Yes and I agree that is the case. Came from DevOps, so Linux still feels natural. Though I use it for everything now from developing, image/video editing, browsing. Literally, I feel like the only thing I can't do is IOS development.
As a developer and hobbyist photographer and maker, I'm between two worlds. Linux is perfect for development but nothing Adobe or Autodesk runs on it, which is extremely frustrating. I don't even have to reboot to game, but I do need to reboot to edit a photo.
> Linux is perfect for development but nothing Adobe or Autodesk runs on it, which is extremely frustrating.
True for Adobe, technically false for Autodesk if you aren’t in CAD. Maya and MotionBuilder (acquired from Alias in mid 2000s) run on Linux for the film/VFX industry.
Though to be fair, I’m pretty sure they are the only applications in AD’s entire portfolio that run on Linux, and it wasn’t because of them.
I am in CAD, alas. Fusion 360 barely runs on Windows.
Being a developer does not equate with UNIX.
Plenty of us are developers in other platforms.
Docker has been my biggest gripe lately but admittedly has gotten better.
Update environment. MacOS requires reboots and nags you constantly until you do. Whereas, apt and dnf are simple and can be automated in the background.
Doing anything 'interesting' requires you to reboot and fiddle with the firmware. Where linux sudo works as expected.
Outdated software due to licensing issues. See GPL and bash. Not to mention you will be much closer to a production environment and you will find less bugs developing due to differences in OS.
Lots more but this is a good start. All of these things are small and mostly can be worked around but they add up I'm a big way.
The road on Linux isn't completely rosy and can take more learning if you need to do anything really complicated. Tools are great but not necessarily pretty, etc.
This seems rather uncharitable.
Docker [was] off on macOS through no fault of the OS. Particular software dev teams taking shortcuts is on themselves.
Linux also requires reboots for certain updates (plus you can disable checks for updates entirely and run one only when you want to on macOS, or even use `softwareupdate` for finer-grained control, so if it was "nagging you constantly" that's kind of on you).
`sudo` works "as expected" for everything that doesn't involve conflict with the built-in System Integrity Protection, which is most things (in the past three or so years on macOS I've only run up against it twice). There isn't any "fiddling with firmware" going on. Plus if you want total freedom to delete your entire `/bin` folder or something, again you can disable SIP and move on with your life.
I'm currently running Bash 5 on my MBP, so I don't get your outdated software complaint either. macOS doesn't have any magical power to force you to use the versions of (third-party!) software it ships with.
If these are the first complaints that come to mind it just sounds like you haven't used the OS much and entirely refused to explore it or give it a chance in the time that you did. I mean, not even trying to set your own update preferences?
> Doing anything 'interesting' requires you to reboot and fiddle with the firmware. Where linux sudo works as expected.
If you mean SIP, can't you just disable it for good? Then you should be in a situation similar to Linux.
There are a few low-hanging improvements (updates almost never require you to restart). But it's a lot of tiny things that add up, some of which are hard to put into words. If I had to pick one thing that encompassed a lot of them, it would be that when I use Mac I feel like I'm adjusting my work-style to what Apple thinks it should be. In other words, my Linux setup now feels like it's a professional tool, and the Mac I use for work feels like a consumer-grade OS that happens to have work tools bundled on it.
This is hard to put into words. If I'm an artist, my tools are very, very focused and robust. I might have specific pens and brushes that I know the feel of very well. They're not flashy and they don't have advertisements written on them, and they don't change their properties behind my back. Everything about them is designed to help me draw. If I'm a musician, I spend a lot of money to buy an instrument, and I get to know it very well. I have particular brands of reeds that are consistent that I'm likely preparing or sanding myself. I know my instrument so well that I can tell you which notes trend slightly flat or sharp, and after a while adjusting to that becomes instinctive.
So if I'm a professional programmer, I likewise want a computing environment that I understand completely and can service myself, and that is very customized to my own preferences. It's no different from any other professional field -- the point of the computer is to help me get work done, everything else is secondary.
You'll get different answers if you ask someone why Linux makes them productive, because the benefit of Linux is that it adapts to you. For me, personally, the biggest upgrades to my productivity have been:
1. Switching to Linux in general
2. Switching to Emacs/Spacemacs (Emacs works best on Linux)
3. Switching to Arch as my main distro (which is hard to do unless you already know Linux)
4. Most recently, switching to EXWM as a window manager (which is a lot easier to do on Arch)
Each step of this process has been me getting rid of things that distract me from work, and each step has built on the last. Switching to Linux gives me a setup that is much more customizable and stable, switching to Emacs gives me an editor that is very tightly integrated into the host operating system, switching to Arch allows me to have a very minimal setup (its easier to debug because there's less going on), and switching to EXWM allows me to focus the entire setup on work.
On the other hand, I have an old Surface Pro 3 that's running Manjaro/Gnome that I use for drawing. It's a very different setup from my main computer, because I use it for different things. Again, my computer should adapt to my workflow, not the other way around. The Surface setup is actually interesting, because it suffers from driver issues (unreliable Wifi, bad suspend support). And yet I'm still more productive on it than I was on Windows. I think people underestimate how much time and energy can get lost to distractions, surprise updates, stuff like that. Specialized devices are really stinking good for getting stuff done.
But everyone is different. I know people that get frustrated by the initial setup times or needing to dig more into the OS internals, and I get that -- it's reasonable. For me, once I got past that I found Linux to be really stable, because it doesn't change until you tell it to. Linux is the only OS I'll set up for someone who's not tech-savy, because putting in more work up front means I won't need to do as much regular maintenance.
> 2. Switching to Emacs/Spacemacs (Emacs works best on Linux)
Just to echo this: Magit (Emacs git client) alone has given me a large boost in productivity.
I didn't want to go into details there, but Magit is wildly good. Line-by-line git-blame an entire file with 3 keystrokes, time travel back-and-forth over commits for a single file, quickly preview any file in the repo from any branch/commit using fuzzy-search. This kind of stuff really shines when you're working on a large company repo -- it meant if someone from another department called me up to talk about some obscure feature branch, I could open the relevant files without switching branches or stashing my current changes.
Aside from Magit, I also get a lot of use out of Org-mode (Emacs pure-text notetaking/todo-list client). I'm syncing to Android with Orgzly. Org-mode was the original feature that got me to try out Emacs, and for a while it was the biggest reason I stuck with it, since I'd never used Vim keybindings before. Vim keybindings made me less productive until I learned them, but were balanced by just how good Org-mode was.
I've even grown to appreciate packages like Calc (Emacs calculator). Dang if RPN style input isn't actually faster to use once you get used to it.
I use and appreciate all of these tools on MacOS, FWIW.
I do as well. If you're on Mac, you should still totally look into Emacs, it's great. Heck, if you're on Windows you should still at least think about Emacs.
Emacs overall works slightly better on Linux, because it's primarily optimized for that system. One big area where you'll notice that is if you start embedding X windows into buffers. EXWM is definitely not something I'd try to set up on Mac.
If you're not trying to do stuff like that, then Emacs on Mac is fine. I use a Mac at work and Emacs is a big productivity boost.
How is pen support for your Surface using Manjaro? Is it as good as it is on Windows (which is decent at best). I have a Surface 3 sitting around. I would love to repurpose it for drawing using Linux. I imagine battery life is probably terrible though.
Pen support is great, touch support is adequate, HDPI support is bad. Most of this comes down to individual apps -- Linux devs just don't think about touch or responsive design, and the frameworks they use are buggy or need config options set. Occasionally on Krita I'll get issues where I'll need to hit the tablet home to jump out of the app and back in to reset the touch "mode" that the app thinks I'm in. Kind of annoying.
I would say that it is not nearly as good as the touch support in Windows 8.1, but is comparable or potentially a little better than the touch support in Windows 10. Gnome's touch UI is good, but that's more just a testament to how much worse touch support got in Windows 10.
Krita is not amazing, but is still surprisingly good. When I first started using it, Krita was a massive pain and I missed Clip Studio all the time. It's gotten way, way better, and I now only rarely miss Clip Studio.
I'm honestly not sure what battery life is like. I will regularly use it for about 4-5 hours a day unplugged, but usually I'm at a desk and everything I own is plugged in. I still have Windows 10 on an old partition just to make it easier to calibrate the pen hardware (https://www.sony.com/electronics/support/downloads/W0009338), but I've never taken the time to compare the battery life for both.
It was kind of a pain to get everything set up, but that was years ago, and now that it is set up I just don't think about it any more. I'm very happy with its performance as a drawing tablet; at least for the type of illustration work I personally do. If you're comfortable with Linux, I'd say go for it. If not, you're probably better off with a Wacom tablet that won't force you to fight with Linux drivers.
Thanks. Yeah, I'm not super comfortable with Linux, but agree with your mindset. I want a professional tool that works for me without constantly demanding updates. I also dabble in Clip Studio, primarily for comic inking. I really like it. It was unfortunate to see it go to a subscription model for iOS.
Well clearly autocorrect doesn't work well on linux
To start on a new laptop in an office on OSX I just list my brew packages on my previous laptop, copy my ~/ and move that to the new laptop and I'm set up in the time it takes for it to install all my brew packages and casks.
There's a guy at the office who has to tinker and customise everything. He can't use anything that touts itself as opinionated because he has his own opinions.
Kind of reminds me of this article. You say you're more productive but honestly: how much time have you spent working on and customising your OS and is it a continuous project? Can you really say you're more productive than the people who open their lid and just work?
That’s a good question. Then again, it seems that for some people tinkering serves more as a hobby that they just like doing.
By tinkering and customizing you might gain a productive work environment but the way I see it is that some people just want to tinker because it makes them happy. The ’increased productivity’ seems to be more of a way to rationalize it to oneself.
Shortly after I graduated from college, I switched from Arch to Ubuntu and it was a bigger step in growing up than getting my actual diploma
I was initially very cynical about Arch, assuming that it was basically a form of role play for people who didn't actually need to get anything done with their machines but wanted to feel clever. And while that's 100% true, I did eventually realise that I could stop trying to install it on my laptop, and instead put it on a tiny meaningless server instead. Now I get all the hard-won lessons without actually having to think about X config again for the first time in 10 years.
Now, don't put Arch on your servers either because there's no real security story for Arch, but in that time I have learned tons about systemd, and you can't put a price on that.
And how often do you draw on skills you learned on Arch that you wouldn't have learned on Ubuntu?
Arch Linux teaches skills like:
- Knowing what happens if I have the audacity to update my computer without reading 3 different forum threads
- Understanding how to fix hilariously bad font rendering issues in a terminal, a software paradigm that's almost as old as computers themselves
- Tempering expectations that incredibly obscure apps like "Spotify" will "just work".
I think to imply Arch teaches much beyond the skills needed to deal with Arch Linux is a tenuous premise at best.
Contrary to the popular belief that Linux has no games, Arch includes many fun games such as "find out why the audio decided to stop working today for no reason"
I use Spotify for hours every day and I've had absolutely zero issues with it since I moved to Arch 3 or so years ago.
Agreed on the fonts, that has always been a pain. That being said, I recently installed Arch on a new laptop and the fonts weren't too bad out of the box - times change.
I update at least twice a week and I've only had one breakage in 3 years - I didn't update a config file with some new settings.
All in all, your response comes across a little FUDdy IMO.
My experience of Arch is that it's fun as a home computer tinkering exercise but I don't trust it for my work computer since I can't resist a version number bump and the amount of time spent faffing around would be a nightmare.
I think it can definitely differ between individual systems - the fact that Arch is so flexible also means that each system can have individual little foibles. Personally speaking, I've used Arch for work for the 3 years mentioned previously with no problems. At my previous job I used to be oncall for a week at a time and I wouldn't upgrade during those periods just in case, but that was the extent of my caution.
This is all way too close to home, but I legitimately think the time I spent on arch made me more productive on linux machines.
I used a variety of GNU/Linux distros: Ubuntu, Debian, and Arch, Slackware, Frugalware, Fedora and more recently openSUSE Tumbleweed.
Honestly, I don't understand what makes Arch so special.
I have mostly learned things on Ubuntu and I can use Arch just fine, and I think I have a decent understanding how things work.
Really, I think there is nothing fundamentally different across these distributions technically speaking.
Their biggest differences lie in their package and release management and policies (and, agreed, this is huge).
I'm not sure what skill you would learn on Arch and not on Ubuntu. It seems some vocal Arch users are lying to themselves and to the rest of the world about this.
Gentoo (or LFS) might probably be more educational, but I haven't used Gentoo enough, and haven't tried LFS enough to say.
(Kudos for Arch's documentation though, useful even when using another distro)
I'm not a zealot or anything, I just like Arch because of certain good aspects. Great documentation for everything I could want to do (though it used to be better). Rolling release. Upstream, latest packages. AUR. On that note, I tend to prefer Manjaro unstable nowadays because it works out of the box and still gets me the latest packages.
I don't particularly care for the whole DIY aspect. I spend enough time tinkering with Emacs and other tools that I don't want to waste any time on configuring/tweaking the OS itself. The different Manjaro versions are pretty decent (currently using the Awesome WM one), and I really like the Manjaro CLI installer (manjaro-architect) if I want a bit more control over my installation.
I went the opposite direction, Ubuntu to arch.
I think that archlinuxs advantage is that it's minimalistic, the philosophy is simple, you know what is running on your computer and generally why.
Tinkering with arch itself isn't that time consuming because the package management is so incredibly good, along with the AUR and wiki. These are invaluable.
I really do think the difficulty is overhyped though, it's really not hard at all.
I have been using Arch from Windows/Ubuntu at home (I run Ubuntu in a VM at work) since the beginning of the year on 2 personal latpops Asus/Dell and didn't have any issue.
On the Asus Nvidia updates broke my Windows manager on Ubuntu it not happen with Arch.
The Arch install is a little bit more complex but you can do exactly what you want which was for me: use systemd boot instead of grub, and cipher only the home partition.
Once the setup is done, I did not have any issue, fiddling to be done.
For me where I lost time on Linux was when I tried to customize my desktop environment to my liking with i3/polybar/etc. Now I just run Gnome3 on Wayland, far from perfect but it is a good compromise TBH between setup ease/integrated UI components and features.
I'm using a very similar desktop environment (mainly i3 + terminal + vim). What I really like about this setup is that it's compatible with every project I work on. I rearely have to learn new tools and I honestly did before spent more time getting used to new IDEs and stuff than configuring my current work environment. Configuring it is an ongoing project, but I commit changes to my dotfiles, so it's no lost time.
I definitely believe in knowing the most about your tools - regardless of profession. I’m less sure on where this line sits for OS choice. There are or at least were professionals who really needed Mac OS to get their work done properly along with the Adobe suite. Giving them Linux and OSS alternatives would almost certainly hinder them too greatly. But being able to hop onto just about any box and quickly get whatever done is itself a demonstration of broad knowledge.
You absolutely should know your tools so you can actually trace problems and troubleshoot by yourself, which saves you time from researching and finding expert opinion. This is the exact reason why I don't use linux. I know my tools pretty well (macOS and bash), and I can troubleshoot my own problems.
But there are always going to be exceptions, new problems will arise that will slow you down. That's another reason why I'm on a mainstream OS and not linux, because when I do encounter a problem that slows me down, devs work at breakneck speed to fix bugs and there is extensive documentation because the community is much larger than the linux community. I'd be spending waaay too much time in the weeds on ubuntu, sifting through pages of SEO crap search results to find the one sage forum post from 10 years ago with now deleted screenshots, just trying to run the software and workflows I know like the back of my hand on macos. I don't want to start over and be a dumbass again, I've found my niche.
Check out the Arch Wiki. Mind you: I am not saying use Arch necessarily. But the wiki is fantastic documentation for Linux.
Sure, it’s one thing to compare knowledge that you already have. But does macOS even have a counterpart to the Arch Wiki for those starting out?
I loathe tinkering/ driver set up. I was using a MacBook, but when it came time to replace..
I bought a pre configured Linux computer (laptop). They’re not very common but common enough.
I haven’t had to spend any time with setup, and frankly I’ve been pleased that everything just works. My main complaint it Battery life isn’t terrible but isn’t great but for what I do it’s good enough.
> Can you really say you're more productive than the people who open their lid and just work?
I don't know if overall all the tinkering I've done over the years was a net positive in terms of efficient use of working hours.
But I can for sure tell you that if I've just opened my lid and worked, I would have been much less satisfied while working when I would constantly run into unnecessary limitations of my tools. Hard to put a quantifier on work satisfaction.
As a professional, using the right tools for your job should be part of your job. You wouldn't trust a workman hammering a nail into the wall with a screwdriver just because that's the only tool in his tool belt.
And this isn't even an exaggerated metaphor. For decades Windows was unusable OOTB for any serious development. OSX is still handicapped by a decades old userspace (better than nothing but not good).
You have to be smart about what you tinker with:
1. Do you know what the end state is, and do you know that you'll be significantly more productive? If so, then spend some real time on it.
2. Do you not know what the end state is, OR are you not sure what the best setup is? If so, then do the absolute minimum amount of work to make your changes functional and no more. Then use the incomplete setup for a while and see how it feels.
3. Are you not sure of the end state, AND are you not sure it will make you more productive? Then put it off and keep using your current setup, or at most try it out on a separate computer in your free time.
It's not unlike working on software architecture. You can get so focused on good architecture and clean code that you never get any real work done. Some code is fine to leave ugly. But not all code -- the art is knowing when code actually needs to be refactored, and figuring out how to refactor it in a way that doesn't lock you out of developing new features for a month.
Environment customization is the same way.
> Can you really say you're more productive than the people who open their lid and just work?
- I do open a laptop and just work. Using configuration that I’ve already created to suit my work.
- Other people is a big group, and one that doesn’t matter so much here. I’m more productive using what I’ve opted to change than without. Yes, the minor time investment was worth it.
It's a multiplicative effect. Spend a few hours setting it up just right for your own workflow, and it tightens up your productivity going forward.
It may not be by 30-40% as some people claim, but even at 1% that's around 20 hours in a year assuming a light schedule (40 hours a week 48 weeks a year).
Well, I think asking a Gentoo guy if the compile times are worth the performance boost is quite valid (I used Gentoo for several years).
But just because you are using Linux, doesn't mean you have to spend a lot of time customizing. Actually, customizing can be a lot quicker on Linux than on Windows for example (due to the well-integrated package managers).
That said, I do think that some customizations help with productivity, but you should know your limits. If you are trying something completely new, which nobody has done before, you are unlikely to find huge productivity boosts. But if you cautiously follow some best practices you might find some productivity treasures.
It's a good point, it can be true, if done well. You have to have an abstract/productive view on tinkering. Not just bike shedding.. otherwise yeah it's just constant costs.
ps: one talk that I find a pretty strong example is "the unix chainsaw" by Gary Bernhardt (of wat js fame). He shows how to using tools `against` themselves, as data, to help your work. It's not rocket science, but it's 1) something I rarely do truly 2) easy to fall back as tools as silos instead of .. `objects` collaborating.
If tinkering/customising my OS was still my hobby, I wouldn’t consider it wasted time.
Agreed, this doesn’t apply to everyone. Years ago, every 6 months I’d switch to Linux/hackintosh purely out of frustration (or envy) as OSX looked sooo much better than anything else (antialiasing!) AND supported Adobe CC.
Nowadays I’m a Mac user and I’m unlikely to switch, because I’ve grown a bit tired of my tweaking marathons and need a proper *nix system.
I wish Windows just became a GUI layer on top of Linux though.
This is something I sometimes also ponder. I think the answer is yes, as long as you keep your ultimate business goal in mind and optimize for workflow rather than looks. Yes, you do take longer to get going but once your setup is honed in you gain a little more time every minute you use your system.
I have a couple shell scripts that bootstrap any debian machine to work as my dev machine. Probably less time than starting from scratch on a Mac.
I see customisation as a form of optimisation. Optimising tasks that you perform hundereds of times a day will make you more productive. Optimising everything is a waste of time.
You can if the people who are just working do manual steps that I do in one step. I write TONS of bash functions that end up automating everything my peers do manually.
Bash scripts are definitely needed. It’s not optimum to atrophy over time and have to rely on those scripts though. I have coworkers who want to turn seemingly any useful combination of posix commands into a script. I’m not sold on that being the best use of time.
It's a start, hopefully they will discover .bashrc, dotfiles and the power of CLI
> As a developer, I spend almost 80% of the time in my terminal
In which case then sure, pretty much anything will suit you fine. It's not a universal rule though - I spend the vast majority of my time in TextMate or an IDE and probably 10% of time in my terminal, so the comfort of the Mac UI is a more significant factor.
I think the problem is the vague use of the word "developer."
Some people develop programming languages. For them, a GUI-less environment may be ideal.
I do web development. So I need the GUI, not just for testing, but for dealing with image and video assets that come in from the art department, or creating mockups, or presentations, or maps, etc.
It's still "development," but unsuited for a 100% command line experience.
As is often the case, it's easy for someone in one field of "development" to forget that it's a broad category of experiences.
My preference for Linux over macOS is actually the UI. I like having a real package manager and such, but it’s not like I care much about kernel subsystem differences. I have used macs a lot and I just find their UI cumbersome.
And this is from someone who loves the iPhone.
To each his own. For me, I appreciate the way most applications interoperable and the consistency of the experience.
Lately, for me, the killer app has been the ability to cut and paste content between machines and devices automatically and seamlessly. I once I started using it in my workflow, it became indispensable.
If you're talking about universal clipboard, I believe that KDE has also supported that for a while via KDE Connect. Other DEs also support it.
Between machines, but not devices. I can't copy something on my boss' iPad and paste it into KDE.
I'm not really sure I see the distinction between machines and devices.
I can't copy something from my Android phone to a Mac, but I can copy something from my Android phone into KDE.
How do you do this on macOS/iOS?
For some strange reason being a developer seems to only mean doing UNIX GUI-less for some people.
It sounds like you do web design, at least in part.
No, we have an art department for that. But if a map needs to be replaced on the site or a new director headshot or making documentation or training people how to use the site I built for them, those are all better assisted or accomplished with the UI than from the command line.
>> As a developer, I spend almost 80% of the time in my terminal
>In which case then sure, pretty much anything will suit you fine.
I thought the same. I’m married to Photoshop. How good is graphic acceleration support inside a VM these days?
I need to run the latest version, fast and glitch free. Wine will never be a solution unfortunately, unless Adobe supports it officially.
Except the author uses i3.
If you enjoy the tiling window, with nearly everything driven by the keyboard way of working, then Mac OS can’t come close from a UI perspective.
Really no OS can. Tiling window managers are Linux's (and the BSDs) killer exclusive. I've been using Linux full time for 3 years now and it's been a struggle at times. i3 is the sole reason why.
Oberon used a tiling window manager, never found it that great experience.
The other stuff that the OS featured was great and still missing on UNIX clones.
Try Spectacle on osx. I much prefer it over forced tiling WMs like i3. Been looking to replicate it on linux.
All the people I've seen who praise i3 and tiling managers seem to spend way more time finding the proper windows between dozens of tiles on half a dozen desktops than I do on a very minimal setup with Divvy on one desktop.
If you set up your workspaces for different modes, then this rarely becomes an issue.
While some spaces I use are more flexible for their use, certain spaces are designated for specific tasks. I use a space for communication/chatting, a space for my music/email, a space for my calendar/task planning, etc. These don't deviate so for these common tasks it becomes second nature.
Also, even if I would spend 100% of my time in a terminal, iTerm offers such a better experience than Linux terminals (that’s just my personal experience, I used various Linux distributions for ~6 years)
I use iTerm2 when I'm on MacOS, but I basically use it like I use a Linux terminal. I just don't need so many features from the terminal itself... I do need Unicode, with RTL, and colors, and a nice scrollback buffer.
For example, I don't use tabs in the terminal. I usually open a new window and use the WM from outside the terminal, or use tmux inside the terminal. Tabs in the terminal itself are not that useful in my workflow.
My current favorite Linux terminal is kitty (https://sw.kovidgoyal.net/kitty/), and before that I used rxvt-unicode.
Wait, you use iTerm2 on macOS, but you need RTL support? Is there a way of making that work? I’ve long wanted to switch to iTerm2, but its treatment of Arabic script is so janky, I just can’t do it. I’m still using the default Terminal app as a result.
There's a proposed patch in the bug tracker: https://gitlab.com/gnachman/iterm2/issues/1611#note_10740636...
Maybe you can give it a try.
Thanks, I’ll check that out!
I don't have a solution for you, sorry... I need RTL on Linux, on macos I just avoid it.
He's getting that experience through the window manager. i3 offers the features like tabs or horizontal/vertical splitting.
I believe you mean "she's" as the author of this article is a woman.
This. I love iTerm2 and hadnt found an acceptable replacement on Linux until I installed Terminator, which I would say is 70% there.
Other than that I use Linux (Mint) for my main Desktop OS, but I still deal with plenty of rough edges. The latest ones:
- Wifi doesn't work after suspend wakeup. - After upgrading OS to next version using recommended UI method, PC us unable to start graphics mode bc it doesn't find some random UI package... i had to login in TTY and manually install it. - CS:GG, a game with Linux native port suddenly decided to get choppy lagged sound. Same game works well in Windows in same PC - Connecting bluetooth headphones sometimes works, sometimes doesn't
So yeah, plenty of rough edges. Still I use it because I love the programming workflow and use docker with Linux containers.
I recently switched from using a Mac professionally for 8 years to Ubuntu and used iTerm on the Mac, and I honestly have no idea what you're talking about. iTerm was good, but I miss nothing about it. The default terminal with Ubuntu 18 is just as good. Well, better, because it has Ubuntu underneath it all ;)
I had colleagues who returned their company-issued X1 Carbons and bought a Mac with out-of-pocket money, so they could use iTerm2. Some of its features are indispensable and not found anywhere in Linux, although YMMV of course.
I use iTerm to connect to Ubuntu and I feel like I have the best of both worlds, a great terminal emulator and Ubuntu beneath it.
What features? (Honestly asking)
- Auto-summon of the Password Manager on password prompts
- Grep for things that look like IP address and color them in blue, or MAC address in green, or errors in red
- Auto-Complete based on the text in terminal (this leaves people watching me `docker rmi f7<Cmd-;>` breathless)
- Broadcast same keypresses into several panes (having SSH sessions to several servers)
- Making an icon jump when a long running command just finished
Funny thing, given all the emphasis on doing things via terminal in Linux community, is that I cannot find a decent Linux application to manage SSH conections. My work laptop is a Windows 10 machine, where I installed pro version of MobaXTerm (used to access/manage about 50 linux servers), and I fell in love with it. No Linux application that I know of comes close. Any suggestions?
.ssh/config is awesome, and together with a decent shell (with tab-completion for ssh command, e.g. host completion based on your known_hosts file) I find it hard to understand why these applications even exist.
Why would you not just use the ssh command?
In 2019 you still cannot get a decent macOS-like modifier key setup on Linux where OS-keys are mapped to Super (e.g. Super-C being copy) and such that Control works like it does on macOS, so I still always find these kinds of articles nice but you're in for lots of surprises if you try to switch.
And I say this as someone with both macOS and Linux laptops that I work from, but because of the above and other similar things I think you're always up for disappointment if you expect to get Linux to be exactly like macOS.
All Linux and Windows OS follow the IBM CUA standard (https://en.wikipedia.org/wiki/IBM_Common_User_Access).
All of them honor Ctrl+Insert for copy and Shift+Insert for paste. This will work on browsers, editors , shells, etc. FYI this will also work on Windows XP cmd.
Linux has its own set of standards that has evolved to work on keyboards that do not have the super modifier (e.g. in India), but has far more consistency built into it that the Mac
The problem with the Insert key is it's nowhere to be found on 99% of the laptops, thus rendering the IBM CUA standard moot.
Actually it's the other way. 99% of laptops have an insert key.
MacBook and it's wannabes (xiaomi,etc) are the only ones that dont.
This way or another, the IBM standard was authored in 1980s with major IBM systems (mainly MS-DOS and OS/2) in mind, and it has not aged nicely. Windows mostly went its own way. Keys like F1-F10, PrtScn, PgUp/PgDn have never been easy to find or use on laptops (or anywhere except 101-key keyboards). Start or Win modifier key, on the contrary, is universal, but Linux ignores it for the most part.
The only consistent system around is Mac OS X, where Cmd-C is universal copy, Ctrl-C stops the current program in terminal, Cmd-V is universal paste, Ctrl-V opens a vertical block in Vim, Ctrl-A goes to the beginning of the line, and Cmd-A selects all. This works anywhere, from browser to terminal.
i have a Dell XPS 13 - its smaller than a macbook air. It has an insert key.
Whether you like it or not is your prerogative entirely. However, it is not true that Linux and Windows dont have a standard. They do. And the keys are universal (where universal has a different connotation to your usecase - we are talking non-Western countries and hardware that includes weird little keyboard to debug airplane display units)
You are fully entitled your choice+opinion whether you prefer a different one.
> Linux and Windows [do] have a standard.
The nice thing about standards is that you have so many to choose from.
This of course says nothing about whether this particular standard fits you. For me, having to keep a flag in mind whether I'm working in a terminal application (with one set of shortcuts), or GUI application (with a different set of shortcuts), is not acceptable, if I can have a setup where the same set works everywhere.
I just looked down at my Dell lap top and found the insert key with no problem
> It works for me!
I've been using windows for 30 years and didn't know about Ctrl and Shift-Insert
Why not just get used to the default CTRL + SHIFT + C instead of Super + C for use in the terminal?
When I switched over from Mac my initial thought was “get this working like my Mac”. After about a day that changed to “learn the Linux way.”
Switched 2 years ago and the only thing I miss after 10 years on OSX is OmniGraffle.
What's annoying with Ctrl+Shift+C is that it's not the same as other applications, where it's Ctrl+C.
On Mac it's Command+C everywhere.
This is my gripe too, as someone who’s recently switched back to Linux after a 10 year OSX hiatus. My current Linux system is designed and developed by thousands of developers who were just trying to get their stuff working for them, each of them working on a small piece. OSX has a lot more consistency because it was decreed by a few UX designers, alas, that is the price you pay for flexibility.
You apply the consistency, you degree what you want. People decide to use Linux and still expect to be told what they want. Decide what you want and make it so, Linux is fundamentally a user-centric system and for it to work best it needs a creative guiding force in the middle: you, the user.
I'm not sure this really addresses the point. macOS manages to have both user-configurability for keyboard shortcuts and consistency out of the box.
On macOS, you can also define consistent keyboard shortcuts universally and per-application. This is achieved via a very simple interface in System Preferences -> Keyboards -> Shortcuts. This will apply to all applications because they must all respect and populate the macOS menu bar, the mechanism through which keyboard shortcuts and processed and thus made modifiable. Easy, friendly, user-centric.
But on Linux? Good luck. Between all the various user interface libraries with their own mechanisms for defining and modifying keyboard shortcuts, not to mention those apps that hardcode the shortcuts in order to avoid the utter mess of the mixed desktop environments that so many users are forced to use in order to get certain jobs done.
In this sense, Linux is not a user-centric system because nobody who makes a distribution, even the better ones, gives a toss about the user; it's all about the developer's manifestos and freedoms long before it's ever about the user. The average user who just wants to work, not sit there slaving over a billion different and wildly inconsistent configuration file formats each in different locations, who just wants the damned Copy command to require the same two-finger salute in one program as another, is resolutely not the one being catered for.
Linux distributions are just as opinionated as Windows and macOS; DIY distros are utterly irrelevant to the vast majority of people, including the HN crowd who, just like the technically illiterate we sometimes hold our noses up to, also have lives to live.
Because Ctrl is for sending control codes, Command is for issuing commands. You need to have one keystroke that means "copy", "paste", "print", help, etc. everywhere in the system.
Only macOS gets this right.
Isn’t Ctrl+UpArrow the default Mission Control shortcut?
I too prefer the MacOS copy/paste shortcuts, but I find that MacOS and Mac apps mix up Ctrl/Cmd just like other systems.
Selecting text immediately copies it to the clipboard, and middle mouse button pastes. I think this works across terminal implementations.
Just to nitpick. Selecting copies to the primary selection, not the clipboard. These are two separate places where data is stored.
Usually, pressing Control-c will copy the content of the primary selection to the clipboard.
Ooh, I didn't know that. Thanks!
On GNOME terminal you can remap the copy and paste commands to Ctrl+C and Ctrl+V. If you do this, you can use Ctrl+Shift+C to stop a running command.
I think some other terminal emulators might also let you do this.
That gets your hand away from home row.
I have gone the other way. One of the thumb-buttons on my Ergodox EZ is"Super + C" makro. The other is "Super + V".
setxkbmap -option ctrl:swap_lwin_lctl -option ctrl:swap_rwin_rctl
It's not as simple as swapping the keys. On macOS you use the "win key" for system shortcuts but you can also use the Ctrl key for emacs-style movement systemwide.
For example I can type Ctrl-b while editing the URL in the browser omnibar to move the cursor back a character or alt-b to move it back a word, just like you can in the terminal and then use "Win"-b to bookmark a page.
And your command changes the keys you use for moving the cursor in the terminal.
Yeah mac keybindings are pretty awesome, and there's a lot of not so obvious shortcts (keyboardwise, but also GUI)
In GTK2 and 3, you can switch to the emacs key theme and then edit the files in /usr/share/themes/Emacs/ to have meta instead of ctrl. Alternatively, use a key rebinding daemon like https://github.com/snyball/Hawck to rebind the specific keys globally. Long-term I don't think this is worth it though because the programs are not built to support it like they are on a native Cocoa environment. You kind of just have to suck it up and get used to different key bindings in different environments.
No one wants to fiddle with keybindings. Occasionally using Ctrl-c in the terminal (which forces me to redo my text selection or worse) or Ctrl-Shift-c in the browser (which brings up the dev tools that I have to close with Ctrl-Shift-i) is just the cost of using Linux.
MacOS's system is a better system that will never be adopted because there no will (just suck it up as you say), market pressure or authority that would impose it.
Well, that's not the cost of using Linux. It's one possible cost. I haven't ever done either because I use the primary selection (select is automatically copied, middle click dumps it at the pointer).
And when I can't or don't want to do that, I right click and choose Copy.
If I want to use another operating system - Windows or MacOS, it drives me batty that I have to keep going around copy pasting things.
I tend to agree with you that having a difference between Ctrl and Command is nice. But it doesn't actually solve the problem - it works _because_ MacOS is a minority, the last holdout.
In your web browser, Cmd-A will select all the available text but Ctrl-A will move your cursor to the start of the line. In your terminal, perhaps Cmd-A will select all the visible text but Ctrl-A will increment the number under the pointer (since you're running VIM in it).
If the Meta key hadn't died of death and Linux developers had kept expecting it to be around, there could also be clashes between Cmd and Meta.
You (yes you) could patch the toolkits to do what you want right now, all the code is free and open source. But if you lack the will to do it, and see it as unimportant in the grand scheme of things... well maybe that's an indicator that the keybindings really aren't that much better and are mostly up to a matter of taste. I personally don't really care much for "market authorities" trying to force me to do things.
The one that gets me every day is ^W — erase word — against the handful of programs that refuse to let me configure that away from ‘close window’ (I'm looking at you, Chrome).
Is there any window manager that will automatically apply XKB options per-window?
You should be able to do that by scripting the focus event with xdotool, no window manager needed.
This has been my experience exactly.
I switched from Linux to OSX/MacOS around eight years ago, and the better and (to me) more intuitive modifier keys have been one of the features that have kept me there; along with the convenience of Emacs/Readline keybindings for text editing everywhere.
Getting keybindings to work the same way in Linux currently involves a Rube Goldberg setup of GTK3 key themes  and AutoKey  for me, and some things still don't work right (Super-W closing a single tab in Firefox/Chrome, etc.) Also, it looks like key themes are going away in GTK4 .
The Hawck daemon cited elsewhere in the conversation looks promising, maybe that'll work better.
It’s weird to me to use Super to close a tab rather than for the desktop environment. Super is very consistent on my DE of choice: it’s not for application specific keyboard shortcuts, but for keyboard shortcuts of the window manager. That way there are never any collisions and things are easy to remember.
> Super-W closing a single tab in Firefox
If, in about:config, you set ui.key.accelKey to 91, then Super-W will close a single tab (and Super-T will open a single tab etc.). This obviously won't work in Chromium, though.
I just installed Pop OS!, and while not perfect, it sets a lot of default super keys which you can turn off and set the super variants in Gnome shell, etc. Unfortunately I still haven't gotten emacs-like ctrl-a to work by default, though I've tried. Especially in Firefox which doesn't seem to follow any Gtk settings.
Gnome has an “enable Emacs key bindings” option which will enable readline shortcuts. Can’t remember whether it’s in settings or the tweak tool.
Interesting to read this. The reason I didn't get on with macOS is the extra modifier keys.
It was a relief when I didn't have to use a mac for work anymore.
Ditto here - this article captured my own reasons for moving from macOS to Linux. My Mac Pro tube (late 2013) now runs Pop!_OS (~Ubuntu) natively for my Web and cloud development. macOS isn't a bad OS per se, but it's designed for people who fear technology, not developers like me.
I recent switched to a Mac laptop and tmux CC mode is iterm2’s killer feature. Tmux niceness without it taking a key prefix, and with real scroll bars. It’s worth the cost of a Mac!
Any tmux CC mode supporting terminals for Linux or Windows?
> It’s worth the cost of a Mac!
Have used a Mac before for work, and run Arch with Sway for home and work now. The only thing worth the cost of a Mac is having money to spend on a Mac and feeling like that it is best for you. If you use i3 or Sway on Linux and like it, you'll likely never want to go back. Especially with an Arch-based distro with the AUR.
I have used i3 and Arch. I prefer a Mac with chunkwm and iTerm2.
It's interesting to see how broadly the same experiences lead people in different directions. I loved iTerm2's window splitting and resizing so much I wanted it for all my windows. That lead me directly to install i3 on my Linux machine, and I absolutely love it.
I've always found this OS warfare thing kind of weird.
I develop GNU/Linux software, for GNU/Linux desktops and servers. Obviously I use a GNU/Linux desktop. If I programmed Windows software, well, yeah, I'd probably use that.
The whole debate strikes me as some sort of weird discussion about, like, how the house that a professional (or hobbyist) woodworker/carpenter lives in, and the house that a lawyer lives in, are probably completely different, because one just doesn't find it difficult to build a shelf or make up a kitchen or whatever, it's barely even an inconvenience to them, they eat that shit for breakfast, whereas the other might find it a better use of their time to employ someone to do it.
That said, you should obviously use free software because otherwise you're basically a kiddy fiddler.
Anyone who doesn't despise every piece of software on their machine from the OS up, whatever it is, is using it wrong.
One of the major things I missed (and eventually brought me back to MacOS) were things like maximising a window means it becomes its own virtual desktop, and the touchpad gestures that would let you move between them. I tried a lot of hacks to replicate those features effectively but never came close, and it ultimately pushed me back to Macs.
Haha. And that is the one thing I HATE about OSX. I would change the default maximize behaviour to be the same add the double-click top bar if I could. The only thing I do with the maximize to VD behaviour is lose the application windows.
This comment shows me how these type of threads are useless and sound as random whining to everyone. Your experience and use case is so perpendicular to mine and 100% as valid as mine. But one person love for something is another person hate.
Does holding down ⌥ when clicking the green button do what you want?
In GNOME you can four-finger swipe to switch workspaces. Maximising won't automatically put the app on a workspace, but you can use a keyboard shortcut to shift the current window to the next workspace until you get to a blank workspace, then maximise it. Or you can drag and drop the window to a new workspace in the overview.
Swiping feels awful in Linux though. Linux still doesn't have proper animation mapping to swiping, so moving workspaces happens after the swipe gesture, not during. Scrolling in Linux using a trackpad feels terrible too. I almost switched away from Linux just because scrolling in Firefox felt so bad.
In gnome under wayland the swiping tracks, i think. Its new - might not be in the version in ubuntu yet. Also, wayland has its issues so im not using it yet.
You’re painting this as a fault with Linux, but it’s almost certainly the fault of a desktop environment. Were you using GNOME? You can adjust the way that trackpad scrolling works in Firefox and in GNOME Tweak Tool, IIRC.
The fact you have to configure anything for scrolling to work smoothly on a web browser paints linux in a bad light itself. The main reason i do not watch to switch to linux [apart from missing adobe catlogue and sketch] is stuff like the track pad, being able to navigate around using various gestures, having little things like invisible scroll bars etc. Subtle animations and visual queues really make the experience smooth. Its not even about eye candy, just seemlessness so your mind doesnt notice the workflow - which is what you want. The latest ubuntu doesnt even let you drag drop on the desktop? i really want linux but it still seems miles away from sleekness of osx
Hey you might be right that has changed recently - https://bugzilla.mozilla.org/show_bug.cgi?id=1564238
I'll have to dig into it more
Isn't a F11 supported as a shortcut in most of applications to switch to full-screen mode? I remember it was supported over vast majority GUI applications I used, when I was complaining on small screen, but now personally, I don't understand why somebody would need it make windows be maximized-to-workspace as in macOS. There isn't such huge dock, and application menus were redesigned to be in-app-hamburger-menus and finally displays manufactures now provide monitors with higher resolution than few years ago. If you really notice lack of focus / working space, you shouldn't look for typical GNOME/KDE DEs but for a WM (windows managers) like Sway/i3 or AwesomeWM, which helped me to be more productive, when I dab in multiple applications at once.
F11 works in almost all apps, but it is dependent on the app and not the window manager, so it's not completely universal. All gtk and qt apps will be fine, but I had to configure my terminal (alacritty) to support it.
I'm pretty sure you can bind a key to do exactly that in i3.
Yeah that's the thing about Linux that is both nice and awful.
It can pretty much do anything you want, given enough time and configuration... but when that configuration breaks: good luck.
Some people prefer "it just works" over losing some control.
Personally I dislike macOS's "virtual desktops" and much prefer being able to swap between different desktops in i3, and being able to send windows wherever, control tiling, etc.
Whereas on macOS if you have a use-case not supported by Apple, you're either out of luck completely, or it's going to cost you. macOS still doesn't have even window snapping, nor a decent file manager.
It has an awkward pseudo-tiling “snapping” thing that’s useless compared to a real tiling WM or even Windows. Do macOS users manually drag their windows around and align them just right to fit everything on the display?
That's pretty much what I do. It's a different way of thinking about windows. A tiler is more like feeds from a security camera, where you have everything in focus at once and your gaze shifts accordingly, but your attention is nonetheless divided among however many things you are tiling and compromises are made if you have a smaller screen. A mac desktop behaves very much like an actual desk. My windows are like papers, sized as the devs intended or how the paper is laid out and cut. Sometimes things are in neat little piles or spread around on an external monitor. Overlapping happens but isn't a deal breaker, just like having one paper slightly on top of another on your desk. Swiping with three fingers spreads out all my papers on my desk, and shows me what's going on with my other desks or what I've got stashed in my dock.
On my macbook, most of my windows are shifted to the right side of the screen, exposing about an inch and a half of desktop containing all my aliases to currently relevant files, drives, and folders. Icons are sized down to line height to maximize space. Sometimes I want to keep that stretch open and the files handy, other times not.
I've tried tilers and I could see how some people like them and could get quick with them, but they just weren't great for how I personally manage and think about using my computer. I'm a papers all over the desk kind of guy, not a security guard. I also have a 13" display, sometimes in practice smaller if I want my desktop files exposed, so tiling on top of each other makes windows too short, and tiling to the sides often makes them too skinny. I'm sure on a 17" laptop or a large monitor tiling isn't so constricting. Lots of apps these days are optimized for using most of a 13" display size, and lots of websites turn into a mobile site if your window is too small. I was spending more time fighting with the tiler, cycling through different tiling layouts, and changing parameters than I was just quickly and loosely dragging windows around as needs changed (After all, it only takes <1 second to move a window, and <1 second to resize, and I don't have to think about it at all, just like laying down a piece of paper on top of my desk). And I was using the tiler that was supposedly the best and most like the famous linux tilers (amethyst).
Thank you for explaining so well. I can now understand your perspective much better.
I use a very nice utility called Magnet for this.
> It can pretty much do anything you want, given enough time and configuration... but when that configuration breaks: good luck.
You can say the opposite of Macs: "the stuff that is designed to work in a certain way by Apple works perfectly, if you want to anything outside of that beautiful box, good luck"
Yeah I understand having same defaults over customization. I just don’t find all the mac defaults to be all that sane. The maximization putting windows in their own workspace at the very end of the workspace list is one of the stranger decisions of the mac UI
You used to be able to disable the sliding animation when switching desktops in Lion. They undid that and for six years switching desktops meant waiting for the animation (finally fixed again in Sierra). That alone was enough for me to stop using OSX.
Nowadays the OS means far less to me than my windows manager. I use nixos because I like the fact that I can see and configure the state of my machine in a few text files, but that does not give me a huge productivity boost.
Like the OP I use i3, and every time I have to use Windows or macOS I feel like I'm using a crippled machine. If I could put i3 on Windows or macOS, then I'd happily switch. With brew or wsl I really wouldn't notice much of a difference, given 90% of my day is spent in emacs, a terminal or a browser.
This, I completely agree with. Moving away from a tiling WM is pain that it's actually very demotivating.
I suggest you try out Sway, which is pretty much i3 for Wayland. Also, Arch Linux has some great documentation for setting up things like screenshots. You'll have to get used to the flags for forcing xcb for a few Qt applications though, but totally worth it and not difficult at all once you understand it. I do miss rofi though, but am waiting for a Wayland version or the next best thing.
If you miss rofi, you may want to check out Ulauncher . It is a nice app launcher with plugin support (eg. emoji picker).
Thanks, looks pretty nice. I primarily just miss a few specific features, like shortcut to switch modis, ssh modi, and I had one for chromium to search and go to my open tab on any screen, as well as an emoji selector with search and integrated color emoji font. Unfortunately I don't see this providing those features, and it has a lot more dependencies.
Still doesn't fully support HiDPI though :(
There is already quite the discussion going on related to macOS versus [insert linux distro here], but here are my two cents. I've been quite happy with my 2015 MBP since I took the time to "gut" most of the default shell tools and replace them with newer ones. It's not a convenient process, but from my experience, it's really not that much harder than setting up a fresh Arch install. It's as close as I've been able to get in terms of having the "hackability" and freedom of working in a Linux environment, while still having the pleasant UX that comes with macOS (good DE, decent memory management, lovely touchpad, etc.).
Care to elaborate on the modification you made to macOS? Currently running a 2015 MBP and am really happy with it but always looking for improvements.
Every so often I get excited about doing the same, and ditching my MBP and getting a shiny XPS or X1 Carbon. Then I look at a few pieces of software I can't find good replacements for (for example, Transmit for working with S3) or software where the replacements require giving up functionality or ease of use (thinking of Screenflow or Pixelmator). Maybe one day ....
The game changer for me is the multitasking on macos. I pile windows of all shapes and sizes on top of eachother, and I swipe 3 fingers up on the trackpad and there it is like I've laid out all my papers on my desk. I use multiple desktops as well and sometimes assign things to certain desktops. command+space is also fantastic and saves me boatloads of time.
I had a PC at my old job and it was painful to use. All you have is alt-tab really, and that felt like a little half assed script an undergrad whipped up on a lark. Also everything was on network drives which were never indexed for search, so that was painful too. As well as all the usual pain points from every new windows version functioning as a reskinned windows xp in practice.
I prefer cloudberry for S3. Last time I tried transmit I couldn’t generate expiring urls or cloudfront urls. ( using cloudberry via parallels )
A lot of my use cases are massive storage of data files like CSVs and the like, so ease of use in searching and previewing are what I look for. Will remember to give Cloudberry another look however.
Ah yeah that makes sense. We are using for different purposes. I need to look at like 100 buckets and change settings and generate urls.
If it's the MBP hardware that you don't like, maybe try Hackintoshing with a Linux dual-boot?
No, I like the MBP hardware (keyboard notwithstanding, but I spend 80% or more of my time on an external). However if I was to go Linux, I'd probably go with one of the options I listed, where there's compromises to be made when you Hackintosh.
No Photoshop, no Final cut, no Adobe Premiere, no CaptureOne or Lightroom. No good color management
no Linux if you want to do something serious with photography or video.
For video there's Lightworks (https://www.lwks.com/), which was used for cutting Pulp Fiction and Wolf of Wall Street for example.
Da Vinci Resolve (https://www.blackmagicdesign.com/products/davinciresolve/) is another professional video editor used for popular movies (Avengers: Infinity War, Deadpool 2 for example).
Both work on Linux.
I was blown away the last time I tried Darktable as a Lightroom replacement. I can see why you might not like GIMP instead of Photoshop (and using Blender as a video editor has a pretty big learning curve), but most of the functionality you’d need is actually there.
If the proprietary media apps are a must, having a Windows VM works good (with GPU pass through if you need it), as does dual-booting with Windows or a Hackintosh system (which is actually pretty easy these days).
Ooh, I see darktable is finally available on Windows too! I'm still running an antiquated version of Lightroom I purchased something like 10 years ago - very keen to give darktable a try!
Not everyone is a professional photographer or video editor. Especially on HN.
The majority of paid for DAWs are also missing (Bitwig & Reaper only I think), then on top of that the vast majority of plugins are not built for Linux either, additionally lots of pro-spec hardware doesn't have Linux support. Of course your argument still holds true, in that most users (especially here) won't be pro-audio users, but hopefully in time the support for pro-audio users will increase on Linux, because Apple and Microsoft seem to be making the experience steadily worse.
One big blocker for me the last time I tried Linux was that I couldn't get Serum's installer to run in Wine. Helm is the closest Linux-supporting synth to Serum in usability and quality, but the gap between them is too great.
I made the ThinkPad switch with Fedora. I can't be happier !
The biggest draw of the Lenovos is that the they have yet to run hot. My previous Macbook would get sooo hot... I worried when I kept it on my lap.
The documentation on the fedora website had been so exhaustive and well written.
To each their own. My personal experience is that Macs are a proxy for high quality Retina display(sharp text) and more vertical resolution than thos remedial optimised laptops. I just happen to run MacOS which it comes with. Give me that display, and sensible aspect ratio, and I’ll run Linux at the endpoint. Until ten, Linux only on servers for me.
I think Huawei Matebook has even better display than MacBooks, 3:2 ratio hidpi screen. Also something from Surface line, not sure about Linux compatibility though.
Thanks for the info. I looked at Matebook x pro with 13 inch display, 256GB of storage and 16 GB of RAM.
Again, a personal opinion. It costs as much as the equivalent MacBook Pro. I would not choose it over a MacBook because why? Apple has been known to care for customers in the sense that even if they fuck up keyboard design, they run a service program for free. Battery mess up - replacement for cheap. Simply that they have a brand to protect. I can rest assured that I can make a warranty claim that will go through. I’m not sure if I can say that about Huawei. I might try them if they are cheaper or give me some incentive to try. But, if they are the same cost, why would I willingly take the uncertainty?
Some incentives hat would make decide that way are :
1. Open drivers and documentation.
2. Promise of equivalent service or replacement if necessary.
3. Repair/upgrade friendly design - no soldering of memory and SSD. I'm okay if that makes the laptop a few millimeters thicker and a few grams heavier.
Thanks for the info though.
You can use bootcamp to set up a linux partition if you wanted to mess around with that.
I too made the transition and it's almost perfect for me. The only thing missing for me is a decent pdf editor.
I need to fill out pdf forms pretty often (bureaucracy) and sign them with my signature png.
There is no decent software for Linux that let you do that.
I have tried them all, currently I am using foxit reader in wine and it's not great and very sluggish but usually works
Foxit Reader is natively available for Linux.
The native version is worse than the wine version. It was hanging constantly for me
Longtime Mac/Hackintosh user who has been dabbling more into Linux in recent months. I come to it from the mindset of an advanced non-technical professional user—someone who only sometimes has to write code as part of a day job, but is comfortable in a terminal and has a strong understanding of the underlying systems even if I’m not writing an app anytime soon.
I’ve been using PopOS a bit of late, and have found their tweaks on Gnome to mostly work pretty well. I have had to swap around keys to get used to the format some—basically my big thing is having the special characters available through the Alt/Option key is important to me as I do a lot of writing and frequently use things like long dashes.
One thing I found helped a lot was replacing the caps-lock functionality with the super key, which makes the super functionality easily accessible while still keeping the extended characters within reach.
There are apps I wish had stronger equivalents—Alfred immediately comes to mind—as they have helped speed up my workflow in MacOS. And some apps (Photoshop, InDesign) don’t have a replacement strong enough to use as a daily driver.
While I’m still mostly MacOS these days, PopOS is pretty likable.
iMessage and iCloud integration is still missing. I can’t image to reach for a phone every time I’m getting text when working on a computer. I’m surprised that such synergy is still not covered by community.  My killer app is iTerm. There isn’t anything even close to it on Linux. (features _and_ documentation)
There are alternatives for those of us not obsessed with the Apple universe. Android supports Android Messages which can be read/responded to from the browser/an app. iCloud may be substituted with any number of offerings, some will keep files on the cloud and sync as needed to preserve space. If you are invested in the Apple ecosystem, you're out of luck.
Android Messages is not a true competitor here, since iMessage naturally scales up to E2E encryption. (Not a concern for everyone, of course.)
I don't know if KDE connect is available on iOS, but that provides phone integration without effort. Copy/paste across devices, file access/browsing/sharing across devices, remote input, media player control, notification synchronisation and text messaging is all available through KDE connect. If you run Gnome instead of KDE, GSConnect also works very well.
iMessage integration won't happen because Apple has closed down their API. There have been reverse engineering efforts but such a system is never reliable enough for comfortable desktop integration imo.
I've never come across iMessage lock-in as everyone I know either uses WhatsApp, Telegram or plain old SMS so I don't know what limitations you might run into in your setup.
Come to think of it, KDE connect on iOS won't happen (GPL conflict with app store, restrictions to apps, limitations on background execution). I suppose I shouldn't have expected anything else from the Apple ecosystem.
That is annoying although it is completely at the discretion of Apple. Luckily most of my contacts use WhatsApp or Telegram anyway.
Something really amazing for Android is scrcpy. Mirror your phone right onto your Desktop at speeds fast enough to play games.
Android has a web app you can use on your PC btw. It's alright and does the job for me.
What integration are you imagining? I can send and recieve sms on my mbp with native imessage.
Perhaps I misunderstand your issue, but you may want to investigate this more: I don't remember what I did to set it up, but I text with Messages from my Mac without issue, and the system keeps Mac Messages and the iPhone messaging app in sync (I can see all conversations on both).
I can also make and receive calls from my Mac, provided the Mac and iPhone are on the same network.
GP loves the Messages integration in macOS and misses it on Linux.
Ah, yes, a fourth read makes that clear. I read "iMessage and iCloud integration is still missing" as "I haven't been able to get iMessage to integrate with iCloud" instead of as "there is nothing comparable on Linux", which, given context, makes much more sense.
Thanks for the clarification.
If tiling is what you are after, was Spectacle not a good enough solution on OSX?
I use a QMK-based keyboard (although I am sure you can achieve similar levels of functionality with Karabiner) where choosing my window placement is a 2-key macro.
I'd like to recommend Amethyst , it's a window manager that takes control of all windows, compared to Spectacle where you have to "move" each window automatically.
I've been using Amethyst for multiple years at this point, and it has been great for my workflow.
At a glance, it seems like it could be a drop-in replacement for Spectacle, but with extra features.
Lets give it a try...
Spectacle doesn't even come close to i3.
The biggest deal breaker is that you can't programmatically move a window to a new workspace (I think?); and that you can't disable the animations for switching workspaces (biggest problem).
I would suggest checking out Yabai (https://github.com/koekeishiya/yabai) which is functionally similar to bspwm and allows quick switching workspaces (no animation or fade) and throwing windows to different workspaces or monitors.
Is it a case where perfect is the enemy of good enough? I've never felt the need to move anything programatically e.g automatically without it being triggered by my intention.
Spectacle has "next/previous display" shortcut.
To disable animations on workspace switching:
defaults write com.apple.dock workspaces-swoosh-animation-off -bool YES && killall Dock
That command doesn't work anymore since a few versions back of OSX. As far as I know there is no way to fully disable the animation and I hate it!
That command didn't work; and "reduce motion" from Accessibility still produces an annoying fade animation.
I recommend the chunkwm for tiling windows on macOS! It is super-fast and configurable.
I tried to go the other direction, from Linux to Mac, years ago. The two complaints I clearly remember:
- I couldn't figure how the heck to open a web browser, apparently it's a completely unlabeled compass icon.
- You have to use some non-obvious, secret combination of keys while clicking on an application icon if you want to open another instance of that application.
I never did understand why people will pay so much more for Mac machines. I tried it, hated it, could only get things done by opening a terminal and treating the Mac like a generic UNIX system. Went back to Linux as quick as I could.
I'm not surprised this guy's happy to be switching away from Mac.
(designer/developer) I too have finally switched to linux from osx. The final decision came down to the current models of Macbook Pros. I’m currently using a Lenovo P1 Thinkpad with Ubuntu 18. So far it’s worked out great!
how do you type an em dash, a mu, an eszett, et c on linux without looking up arcane codes each time? (option dash, option m, option s, respectively). how do you do color calibration? how do you do messaging? how do you get non-ugly fonts?
these are the barriers to me switching.
I don’t manually type the Unicode characters for any of that because I’m usually using TeX, where typing three dashes becomes an em dash and there are commands for Greek and other characters. You can also configure the right alt key to be used for this kind of stuff.
If you want to use GNOME, it includes a good color management interface that will look oddly familiar coming from macOS. There’s other ways to do it too: https://en.wikipedia.org/wiki/Linux_color_management
As for messaging, I’ve heard good things about KDE Connect. Not sure if it works with iOS though.
For pretty user-interface and default fonts, you can edit a fontconfig file that will let you specify aliases for fonts and some pretty complex configuration to get the right font in each saturation. See https://wiki.archlinux.org/index.php/Font_configuration
I don’t manually type the Unicode characters for any of that because I’m usually using TeX, where typing three dashes becomes an em dash and there are commands for Greek and other characters.
I use xetex for a little project, and while some of those character mappings are very convenient others are not. Vulgar fractions, for instance, work in some fonts but not others. For instance LTC Californian Pro has the unicode glyphs for the vulgar fractions, but xetex doesn't translate e.g. 3/8 to ⅜. Goudy Oldstyle is missing many vulgar fractions (e.g. ⅜), but the tex mappings work. Go figure.
Granted, fractions aren't mapped to keys in OSX, but I use plenty of those mappings on a regular basis including the bullet (•, ·), degree (°), accented characters (á, é, í, ó, ü, ö, ñ), currency characters (£, ¢, €), and the section character — §. I can get all of these with simple keystrokes and, best of all, zero fiddling with keybindings.
> how do you type an em dash, a mu, an eszett, et c on linux without looking up arcane codes each time?
Probably Compose - - -, Compose s s, and Compose m u respectively. Or, if they wanted the Mac layout, they'd run ‘setxkbmap us mac -print | xkbcomp - $DISPLAY’ or tick the equivalent box in their favourite GUI settings. (Option-SHIFT-dash for an em dash, BTW; option-dash is an en dash.)
X and Mac keyboard layout systems have similar power; I slightly prefer the Mac one because you can define arbitrary dead keys, but on the other hand X has Compose.
The compose key on Linux (often the right alt key) enables very similar keybindings: I think ß is Compose s s or something.
macOS' keybindings are honestly amazing.
So is Automator (which I wish more people knew about).
I love linux (and bash) but can’t understand the desire to use it as a desktop OS, especially when you can work in Terminal on Mac. I’m sure I’m not the only one.
my two reasons why I prefer linux is 1. tiling wms, same as in the article. I've gotten a huge productivity boost and largely solved my hand pain by moving to a keyboard workflow and 2, I don't really see the upside of using a mac these days. they're more expensive, more constrained in terms of software (I like to dual boot windows andl inux), I have an android phone which integrates well with linux, so linux it is.
the only actual benefit macs used to have was that it was a polished, non-windows system, but pretty much any mainstream linux distro these days works fine even out of the box.
Anecdotal experience. I tried to set up gcc for someone on macOS, and it ended up requiring to register an iTunes account that asked for a credit card info. After that I said "just simply use Linux, installing gcc there is one simple command".
TL;DR: the reason to use Linux is that it's not controlled by Apple ;)
The Mac shell environment is substandard the longer you press it. Standard utilities are often not the GNU variants so they are often slower and lack the features you may be used to. Homebrew is a second-rate package manager. Worst of all, actually becoming a power user entails learning macOS specific, non-transferable skills that would have been more generally applicable if you learned them in a Linux environment. Also, the default file system setup is case-insensitive, which makes some Git repos nigh-impossible to work with.
Have you tried? There are some really nice DEs out there. KDE has been killing it lately, and there are so many good tiling WMs too. It all depends on what you're looking for from a desktop OS though, so without elaboration I don't know if you're missing out or there's that one thing that's lacking in the Linux desktop world right now.
I had to renew my Asus home laptop last June running Windows/Linux. I hesitated between a Linux or MacOS MacBookPro but I finally decided to buy a Dell XPS 13 9380. It costed me 1500Euros (i7 8cores/16Gb/512GbNvme/1080p/Thunderbolt3/IntelGpu920). The MacbookPro with a better screen but inferior keyboard costed 2500Euros... We'll see how long the Dell will last. I am bit worried about the battery.
Since then I run Arch with Gnome3/Wayland and everything just works including bluetooth/suspend/usbc dock/etc... except the following: - the fingerprint scanner, there are no Linux driver (even for the Ubuntu version sold by Dell) - Wayland fractional scaling does not really work, everything is blurry, so I don't use it. When my I am disconnected from the external monitor I just type a command to do text scaling... - Battery life is still inferior compared to Windows, especially when I watch youtube videos (I don't use Firefox on Linux because of the lack of hardware acceleration)
Compared to MacOSX I find Linux better for development and Ops. All the tools just work, are up-to-date and can be installed from the command line (pacman with the user repositories > brew/cask). For amateur video editing/photo editing, you now have plenty of choice (especially for video). Of course Gnome3 is inferior in term of performance, stability and is less visually appealing.
The OS is a commodity nowadays. Well more and more. Many applications can be found for the 3 major OS. That is why more and more OS vendors offer cloud services like backup/security/planning tied to the OS, well integrated and not opened.
Also more and more Microsoft/Apple/Google will integrate AI related services tied to your usage and what they know of you, so Linux will not be able to compete in that area.
Most of my work is either in a browser (reading) or in a terminal. I ran Linux as my OS for years up until 2015, when I'd had enough of tweaking stuff to make it work (Flash, sound, video etc).
So I moved to a 2014/2015 MBP and installed macports as well (not brew, because I don't want crap in /usr).
So my GUI "Just Works TM", my wifi etc same, sound, etc. MS Office.
Macports gives me the standard GNU utils/bash/etc, I don't use much of the MacOS there. iTerm2 is a great terminal emulator and its tmux CC mode is awesome. I don't have to tweak to get stuff that works.
I've always thought about doing this but keep on running into reasons (or excuses) not to.
Right now I've gone half in and have Fedora Server on an Intel NUC that I SSH into. So not quite a desktop replacement, but a nice linux environment for doing dev in. Disadvantage is you rely on a network connection for this approach, but it will do for now
I've been using windows my whole life and especially on win 10 everything works fine, but I've been nagged on from all sides that mac is so much better than windows that I finally decided to try it and bought it 2 months ago. Long story short I rarely use it and I still don't have the proper tools and workflow to completely abandon my win laptop. And to make things even worse now everywhere I look people are saying windows has gotten better than mac and people are switching back to windows and such. Did I make a mistake or do I just need to figure it out more? I really don't know but mac is really super confusing so far and it looks more for home users or hipsters. I can't say anything about ubuntu though, I work with it all the time as far as bash and servers are concerned, but I've never used it as a primary OS.
Your question feels open minded: did you make a mistake, or do you just need to figure it out more?
What could be going on for you could be individual windows versus end-to-end workflow.
Origins of Mac are neither home users nor hipsters, origins are content creators, from office to graphics and publishing. By contrast, origins of Windows is as window manager for backwards compatible DOS programs. Even today, many Windows programs in the workplace started as mainframe green screens now laid out in Windows Forms. This different DNA at the heart makes the surface behave differently.
MacOS design and feel is less about individual apps, more about creative flow, with gestures to swipe between apps and (mostly) the same keyboard shortcuts across tools, almost anything can cut and paste to almost anything, and so on. The oversized trackpad on the Macbooks is to drive with fluidity.
This difference in flow-centric versus window or app-centric makes crossing back and forth frustrating, the other side just doesn’t feel right. Neither is wrong, they’re just coming from a different place, for a different purpose.
To switch, you have to spend long enough in the other side to adapt how you think about work to the DNA of the ecosystem, develop the new muscle memory to turn your ideas into productivity in that paradigm for work.
PS. MacOS’s Terminal is remarkably fast, and its command line is bash, so that may feel comfortable to you. Darwin, the system on which MacOS was built, is a derivative of 4.4BSD-Lite2 and FreeBSD, so you can think of it as a unix under a workflow optimized GUI.
You can install all three os on your mac on different partitions and play with all of them if you'd like before you return the laptop. For my uses, software is either cross platform or a unix cli package. There usually are alternatives to popular windows-only software, sometimes free by someone just looking to share their tool with the community. Honestly, reddit is a good source for finding these alts, and apple related subreddits are pretty friendly and knowledgeable in my experiences (united from moaning about tim cook's apple I suppose).
Where I think macos shines is the freakish speed you can achieve when you get familiar with the keybinds and the baked in multitasking (nitpicky, but I find hitting cmd with my thumb more comfortable than reaching for ctrl with my pinky). I slap the desktops around, windows fly apart and come back together refocused on a new thought. Search dialog pops up on top of anything and a file from deep in my mess of folders is opened as fast as I can type out a portion of the name. Challenge yourself to use only your keyboard for a while (as much as you can of course). Write out some cheat sheets with keybinds (by hand so you actually remember them). Time machine is probably also the most painless backup solution beyond putting all your files behind a cloud folder, and it versions as long as you have space on your backup drive.
Then it's also a unix machine first and foremost. Lots of functionality is in the native packages, and there are plenty of ways to easily install other unix packages (brew). For instance, it wasn't hard to mount a server like a local drive on macos, using native finder to manage files and directories and the built in ssh for my pipelines. On windows, I have to use winscp and putty, which are great community tools but ultimately another layer of friction to deal with.
As far as what reviews say, ignore ignore ignore. Everyone has their preferences, all of what I've said is ultimately subjective and based on my experiences and biases. I remember that line, "windows is good now guise!!" when vista came out. Give it an honest shake and see what you prefer.
What are the things you struggle with on macOS? When I first switched from Windows to Mac some time in the 2000s, it took me getting used to the difference that in Windows you can do everything from the GUI whereas more advanced operations on macOS where better aborted via terminal. I think my usage pattern now approaches macOS first as a Unix-based system and secondarily as macOS.
Edit: don't get me wrong, I like the macOS UI, but I don't do anything fancy in it and would be a lot less happy with it if I want using shiftIt for window arrangement.
Agreed. I recently went from multiple years of Linux to OSX, and I find OSX FINE. Not great. Not revolutionary. Just fine. I can install emacs and it works. Whoopie.
The laptop is fine. It costs 3x what I would pay for a Linux laptop, but I'm not the one footing the bill. Yawn Oh well. Laptops.
Now what was something that IMPRESSED me is the 2018 Ipad. I did NOT previously consider the possibility of having a screen, wireless keyboard, and a 4g tethered phone connection on me at all times.
I have my Linux desktop at home serving on SSH and MOSH. I have my Ipad set up with a terminal app and an ssh key that lets me remote in. BOOM. My hoss machine at home with a great internet connection at my fingertips. Totally portable dev environment.
On top of THAT, the iPad UX is very tolerable. And having a detached screen with no keyboard is great. I can access Oreilly online learning, Kindle, and Dropbox and read whenever I feel like it ( which I have done a LOT ).
Heck, this whole summer I have been sitting out on my deck reading books, watching Youtube, using Steam Link on my gaming PC, hacking on my dev box, and pretty much EVERYTHING else on that little iPad.
Combo that with the new Sidecar feature coming with the next version of iOS, and I'm thinking I am going to upgrade to an iPad pro. It is a drawing tablet, an SSH terminal, a great reading device, a multimedia device with resolution good enough to watch movies and read comic books on, AND a secondary monitor when I feel like setting up outside on a nice day and hacking on my work laptop? Yes please.
The only downsides: iOS native games are few and far between. One of the top recommendations is FTL, a game released in 2012. If they could get Magic the Gathering: Arena, Hades ( Supergiant Games ), Into the Breach, and a regular cadence of good indie titles on there, I would marry the thing.
The other downside: The walled garden means they keep emulators and implementation for the Switch pro controller out of the app store. Booo! ...but understandable.
>they keep emulators and implementation for the Switch pro controller out of the app store.
True but macOS also has OpenEmu which is great.
I remember the first time I used Linux. A few years later I got a Macbook Air. I love the flexibilities Linux offers. The way you can just change the look and feel of the OS felt empowering. While OS X look and feel is beautiful, I do miss that customizability.
>being a long time lurker of Reddit's r/unixporn
lol of course they would go with Manjaro and i3.
It goes in waves. At one time it was Arch and Awesome.
I use a very similar setup to yours, here's my Dotfiles repo: https://github.com/2kabhishek/Dotfiles if you have any feedback I will be happy to know about it. I use konsole as my terminal emulator. I use kde on my laptop (Mostly for KDE Connect) and i3 on my desktop.
I switched from Mac to Windows 10, and I'm even more productive!
DOS 6.22 and Norton Commander. Nothing else fits on my old floppy disk (I have two), highly recommend.
Would you kindly provided details? Is it window management as snazz has noted, or is it something else, like the fact that windows can now have linux available with it as well???
Because of the better window management or something else?
What are some of the advantages of windows window management? Other than snapping I find it clunky. To be fair I tried out a tiling desktop as well and didn't really like it. Too orderly and forced for me. I like piles of papers all over my desk and windows all over my desktop I guess.
Interesting. What I’ve found is that it’s a lot of work to move windows around on a Mac when I want to see all of them at once. I just feel inefficient when I have to do a lot of clicking or Cmd-tab to get the window I want visible. Judging by the number of third party window management stuff for macOS there seem to be a lot of people who appreciate it either way.
Two most useful things for me for my transition from mac to linux.
1. fzf - mentioned in the article. 2. Albert - application launcher 3. Clipit - similar to mac's copyclip, but not as easy CopyClip
I'd suggest rofi rather than albert, runs like a charm.
God I hope they add Wayland support soon. I really miss rofi.
I've used a Mac at work for several years now and generally either like the UX or have found third-party packages to fix my problems like BetterTouchTool.
All but one-- MacOS doesn't allow click-through. If you're working in one window and want to click on something in a second window, you need to click twice, once to select the other window and then again to do whatever you were looking to do. This drives me crazy on an hourly basis and there is no way to fix it.
Docker is the way. Darwin is a mess for development, but it doesn't matter. Start with a 137 MB bare-bones Debian image, add just what you need, Docker is the way.
Sounds interesting. Tell me more. What do you use to host it on? Do you ever run any X/window systems?
I'm coming from a web development perspective. When the browser is your gui, or your app doesn't need one, Docker (running on Linux, Mac, or, cough, Windows) just takes away your concerns about environment consistency. Like a VM, but not really. A "container", a minimal Linux image, running a "service" for your app, is a beautiful and portable thing! (Looks like running guis on Mac from Docker is messy: https://cntnr.io/running-guis-with-docker-on-mac-os-x-a14df6...)
Also made the switch from MacOS X to Linux with i3 and mostly happy with the result. Things I miss the most are consistent key bindings for the clipboard and Spotlight.
I made the switch from macOS to elementary OS and the keybindings are all I really miss. Apple seems to have the most-complete and most-consistently-implemented keyboard shortcuts by far.
I also switched from macOS to Linux and am happy. I wrote a blog post titled "Home and Hotel" about this once . TL;DR: macOS is like a hotel - stylish but you can't bring your own furniture. Linux feels like home. You have to do the dishes, but it's yours.
The "home and hotel" is a great analogy! (And, nice blog post, too!)
I really don't believe people when they say "I had problems with performance on browser _________ so I switched to browser ___________". Both firefox and chrome are about equally performant with chrome having the edge, as any cursory internet research will show. I choose firefox because the organization behind it cares about it's users more than making a buck
Nothing is original in this setup. These all are off-the-shelf packages, well-known, battle-tested, open-source software. The amount of configuration is also moderate.
And this is great. This literally means that Linux is ready for a developer desktop, and has been for years. It wins over the Mac experience in a fair competition.
>It wins over the Mac experience in a fair competition.
Define "fair", because I feel like this inevitably means stripping away legitimate use cases.
Fair as in "I had both, and chose that", as opposed to "I took the free-as-in-beer option because I was cash-strapped" or "I chose the only variant that could run my critical apps".
You may want to give sway a shot. It's like i3wm, but without all off the xorg pain.
Not unless you have a HiDPI display and rely on some non-Wayland-native apps. Causes blurry apps which can be headache inducing. It is a known issue being worked on though.
I spend most my time in Emacs so OS might not matter a whole lot. Though I like being able to verify browser display / experience on a device similar to my users (mostly Mac).
One stand-out piece you're missing is tmux-ressurect. You mention that you start the day by opening terminals for each project... You'll never have to do that again.
There’s also tmuxinator. I setup profiles for my different development environments (panes for db/repl/vim).
Just a command away from it setting up the Tmux panes with the right sizes and processes running.
Interesting that kitty is getting more exposure. I definitely agree it's the fastest terminal on OS X. Dunno about Linux though.
User moves terminal-based workflow to Linux, finds it isn’t any worse. Neglects to try chunkwm.
If I wasn't an iOS developer, I would probably switch back to Linux as well.
Awesome article, never heard of Kitty but will check it out!
dwm is a great tiling window manager for developers. Easy to customize the source to do whatever you want and far better and more performant than i3.
Has i3 performance been an issue for you at some point? It’s always seemed perfectly fine to me, but that might be the environments I’ve used it in.
I mean if you crud i3 up with a bunch of mods, maybe it could slow down, but I'm surprised as well that it wouldn't be performant for some reason
Having heard good things about Linux and being a long time lurker of Reddit's r/unixporn
Stopped reading at this point. Nothing wrong with tinkering with your GUI, but my priorities differ.
Tinkering with GUI is not just about looks. It's also about workflow. So unless you mean that doesn't interest you either I'm not sure you stopped reading at the right point.
PS: I'm not telling you what you should or shouldn't read. Just trying to understand what you meant.
Years ago, I spent inordinate amount of time on that kind of thing. At some point I realised that while enjoyable no work gets done. Nowadays I don't have a work "flow". I just work which for me means reading and writing code or emails without interruptions. Any "flow" on top of that is a waste of time. My experince for whatever it's worth.
Over the last 20 years, I've heard this often. "I don't need to learn no VCS, I get work done by copying files". "I don't need no IDE and semantic navigation, I'm productive with Notepad+". "I don't need no ticket manager, a shared TODO file is more than enough".
Everyone has a work flow. It can be simple or complex, self-made or partly-compulsory. Some will try to always use better tools, other will try to keep the plainest environment. I believe it's a good practice to at least know what other people can do.
It took me many years to discover and build an environment where I feel confortable and productive. I spend many days working for this, but now it has hardly changed in 5 years. I think that time was an excellent investment.
I'm with you on this one. Back in college I used to spend an absurd amount of time tinkering with XMonad, rainmeter, custom themes, but now my requirements for a computer are:
- it has a basic window manager (half screen left/right, full screen)
- it has emacs
- it has Firefox
- it has tmux
- (if the computer is really fancy) it has a calendar application
> it has emacs
Back to square one.
If all you do is reading and writing code and processing emails, and you don't want to waste time, workflow is very important, since it minimises interruptions.
Maybe you mixed up "tinkering" for workflow improvement with "tinkering" for the sake of it.
The advantage of GNU/Linux here is that once you nail it, you never have to change it again. Your OS will outlive your hardware; you simply transplant it, together with your workflow.
What's the point of commenting that you're not personally interested in an article and didn't read it?
Macs are the perfect dumb terminal. They look great, have a smooth ui, and require little fiddling.
However, I always need to ssh onto a “real machine” to get actual work done.
As usual this is the typical "Mac as pretty Linux" user story, so naturally the migration was quite painless.
He forgot Weechat!
Before I clicked the topic, I knew it was going to be i3. People who never used it have no clue how much it boosts up your productivity.
What about the trackpad? They never bring up the trackpad in these things. :)
> prompted me to switch. It was a choice I never regretted
That doesn’t bode well
I have gone one step further, to Windows 10.
I finally removed Ubuntu from my home laptop too. I'm now using it in WSL with VS Code.
Everything day to day works better. My shares mount easily, my media players work, but best of all I get proper versions of Word and Excel. I still manage a bunch of Macs at work, but I have come to regard them as the BetaMax computer. Worst of all this is BetaMax, with the users not having noticed that the rest of the world has BluRay. I get so many Mac Users telling me 1990's anecdotes about things Macs do better than Windows. "Macs update silently in the background". No they don't. Windows 10 does a pretty good job of it though.
I have narrowed it down to the real truth. Macs look cool when you are sat in a hipster coffee shop with your hipster book pro. That and stuff with iPhone compatibility, home user stuff.
>I finally removed Ubuntu from my home laptop too. I'm now using it in WSL with VS Code.
How does this work in practice? Do you run VS code from WSL with an X server? If not, how do you deal with VS code locking your files? As far as I know, the permission issues when accessing the same files from windows and WSL have yet to be solved.
I am very impressed with WSL and how far it's come in the last few years, but the integration between the linux and windows file systems doesn't seem to be quite as seamless as I would like to rely on it completely. I often find myself restarting the Lxssmanager to solve the file permission issues as well as the zombie process issue that still seems to plague WSL.
There is VS Code Remote Dev extension, so you can have everything in ssh/wsl/docker and only use VS Code in Windows as UI.
This, except I don't use docker. Store files in Windows file system. I put a link between that location (/mnt/c/users/username/foo) and unix home. Open up Ubuntu app, navigate to the directory (~/foo), type 'code .' And a VS code server starts there and opens Code in Windows. Any extensions to Code need to be installed in WSL (there is an option under the extensions menu).
While blaming others for it, aren’t you providing a pretty strong anecdotal opinion yourself?
Some people prefer Windows, some Linux and some MacOS. These days you can get work done with all of the most popular OSes without losing a lot in productivity. Beyond that it’s just a matter of preference.
Personally I have opted for Apple ecosystem but can’t really argue it being universally better than others. But then again, dont really feel the need to make that claim either. Just use the software and hardware you are most happy & efficient with.
I don't have to be anecdotal at all, I can count the service cases as a proportion of workstations and tell you that my team get more mac service issues per machine than Windows.
Microsoft Office on Mac is a big cause. I have some users who only use Office or a browser and still use Mac. I cannot understand it, Office on Mac is simply bit as good as Office on Windows.
I have colleagues that swear by some of the new Microsoft portable machines.
The few times I’ve had a look at Windows 10 I’ve been seriously put off by all of the ‘junk’ that is automatically installed, e.g. candy crush etc.
I also worry about Windows still being a big target for malware.
What can die hard Win10 users tell me about these concerns?
You could ignore it? Not being funny but I don't notice it. It certainly doesn't get in the way of my daily work.
On my home PC I just searched up candy crush and uninstalled it with a right click.
On my work PC using Windows 10 pro and signed in to a domain I don't get them at all.
Re Malware, I think Windows 10 has an excellent security model, and you would have to be pretty careless to get malware problems. However I won't deny that Windows is a much bigger target due to number of installs.
>The few times I’ve had a look at Windows 10 I’ve been seriously put off by all of the ‘junk’ that is automatically installed, e.g. candy crush etc.
Not a diehard win10 user, but as far as I know you can only disable this legitimately if you pay out for Win10 Enterprise.
I think there are registry hacks that work on other versions though.
You can't buy Win10 Enterprise if you are an individual.
Now all that ridiculous bloat is pretty easily disabled. But that along with telemetry and forced updates are probably the last drops that will force me to linux for my workstation.
I can't believe they sold their trust for that. I can't use an operating system that I don't trust.
I personally prefer windows as well. But I haven't yet been able to find a setup for it where all my unix centric software works. For example, if I want to debug in my IDE, I have to run it under WSL, since the project contains code that doesn't work on windows, and run an X-window server on Win10, which is flaky and means lots of manual setup.
If you use Code as your IDE you can use the WSL extension to debug inside WSL from Windows.
I think automated Browser testing is the only thing I am seeing I would have to do from Windows