Some of it is just unfamiliarity, some of it is trivia that is hard to get used to (I've been binding alt-shift to some actions for the three decades - and the Mac won't let me do that), and part of it is the Mac crapping all over my directories with DS_Store files and whatever.
Part of it was the inconvenience of having to buy a lot of thing I could earlier "apt-get". I would probably have spent $500 on things, glad to support the ecosystem, but it's from 10 different vendors, each with their own terms-of-service and mail and having to register and stuff. I would gladly buy it through the app-store if they were available there, but none of those I wanted were.
But the biggest thing is, I hardly got anything from the Mac that I didn't already have with Ubuntu; I do science, programming, and a little bit of movie watching / internet browsing - no multimedia production. Ubuntu is just as good, if not better, than MacOS for those things. Never had an issue with sleep/hibernate not working in Linux.
The things I did get from the mac: (And the reason I was trying to switch): Better hardware (especially screen, touchpad), better battery life, lighter weight. But overall, for me, they were not enough for the inconveniences.
- Headphones constantly crackle when they're plugged in. I've tried updating audio drivers, enabling/disabling various things, editing config files, etc. nothing fixes it. I've gotten used to listening to music with a crackle superimposed on top.
- Screen randomly flickers
- The trackpad interface is nothing short of _atrocious_. If you move around it too much it "locks up" the cursor and you can't move anymore, you have to click it several times while dragging until it starts working again. If you brush it with a single atom of your finger as you're typing, the cursor will move around wildly, often selecting most of the text you've typed and overwriting it with your next character. I've also tried updating/changing/etc libinput and it doesn't do anything.
- In an attempt to fix the above issues, I tried to update to Ubuntu 18.04 (it was on the latest 16.04). `do-release-upgrade` wouldn't recognize there was a new version available (this was a few days ago). I did `do-release-upgrade -d` without realizing it was a dev version, then after a few minutes of reading I realized it was, so I cancelled it, and rebooted my computer. Now, it just boots to a cursor on a black screen and it never changes. At this point I just decided to start using my Macbook again until I get un-frustrated enough to figure out what to do with the Dell.
Only on terminal it's with SHIFT to avoid conflict the Ctrl+C that ends a command.
In most apps, the primary selection is populated merely by selecting something, while the clipboard selection is populated by some sort of explicit user action, like ctrl-C or a context menu.
The clipboard selection is pasted with some other explicit action. Usually it's analogous to the way you copy to it, like ctrl-V, or a context menu.
The primary selection is usually "pasted" with middle mouse button. Sometimes there's also a keyboard shortcut, and if there is it's often a modified form of the clipboard-selection's paste shortcut.
Most people get confused by the fact that there is more than one "clipboardy thing". They copy to one, and then paste from the other and winner why their copy didn't work.
The fact that there isn't a consistent action to get to each doesn't help. It is consistent if you stick to apps from the same "family" (eg: Gnome/gtk+ or KDE), except terminals never use ctrl key shortcuts. (Because control characters already mean something in terminals.)
This is one of the cases where I think the Mac approach happens to work out better than Linux (or Windows): by using ⌘ instead of control as the default shortcut modifier, there's no ambiguity about whether I'm talking to my terminal (copy, paste, spawn new window, etc.) or trying to send a control character. I don't know why the Linux community defacto-standardized on control keys rather than Super (or even Alt), given the high proportion of Linux users who are also terminal users.
Let's not blame the (l)users. For example, by merely selecting the text you want to replace you may override the paste buffer content - this is a blatant POLA[1] violation.
[1] https://en.wikipedia.org/wiki/Principle_of_least_astonishmen...
I don't think stating that "people get confused" is placing blame on one party or the other. That they get confused is a fact. I said nothing about whose fault that is.
> For example, by merely selecting the text you want to replace you may override the paste buffer content
It's a trade-off. Having the mere act of selecting text copy it to the primary selection is extremely convenient. There isn't any way to have that convenience without the downside that overwriting it is also easy. If you want to copy something and not have further selections overwrite it, you use the clipboard. This is like the trade-off of having a confirmation dialog or not.
I wouldn't say "this is a blatant POLA violation". What surprises one person might seem obvious to another. There is only one intuitive user interface, everything else is learned.
The confusion starts with the fact that people typically aren't told that the primary selection and the clipboard are two separate things (and by using the term "paste buffer" to ambiguously refer to one of them you're perpetuating this). Much of this misconception comes from the fact that more popular systems (Windows and Mac) only have the one clipboard, and people assume that whatever they learned first is universally true.
Not knowing about the primary selection actually isn't a problem on its own, though. After all, if one only knows about the clipboard operations, but doesn't ever trigger pasting from the primary selection, then the fact that the primary selection even exists would be invisible to them. The clipboard selection on X works pretty much the same as the clipboard on other systems.
The real problems start when people who believe there is only one "paste buffer" are then told, or discover, that they can "paste" using operations that actually paste from the primary selection rather than the clipboard. The worst part is that this doesn't fail outright, but instead seems to work, but inconsistently. Now they're confused, because there is no way to reconcile this behavior with their mental model that "this is another way to paste from the one and only clipboard".
Upgrade are offered from LTS to LTS only once the x.x.1 has been released.
https://help.ubuntu.com/community/LiveCdRecovery#Update_Fail...
Rather than Ctrl+Alt+F1 (which switches to a TTY), you can open a Terminal instead and run 'sudo -i' to get a root shell.
Replace 'sda1' with your root disk (you may have LVM enabled, and definitely if you have full disk encryption). If you don't have disk encryption, run 'pvscan' and see if it reports anything.
To get the update to finish, you can run 'dpkg --configure --all'.
There's a good guide here :
https://wiki.archlinux.org/index.php/Dell_XPS_13_(9350)#High...
Using alsamixer, I set 'Headphone Mic Boost Volume' to be 22. Then persisted the change with 'sudo alsactl store'.
I haven't experienced the other issues with Arch, though.
I thought Dell’s XPS series was supposed to have first class support on Linux? Did you try to contact Dell? I never had problem with sound on Linux even with some very cheap hardware.
Anyway, if you’re willing to do some tinkering yourself it might be as simple as adjusting some deep alsa settings.
E.g. this guy makes it look easy[1] :)
> I've also tried updating/changing/etc libinput and it doesn't do anything.
Does it use “precision” drivers on Windows? Sometimes trackpads implement their own gesture recognition and all kinds of other weird things. Check what you get with `xinput list` and try disabling anything that is not a pointer device.
> (it was on the latest 16.04)
Was it a new Dell? If you have new hardware and old kernel then forgot all of the above as that is obviously not a great combination. You absolutely need the latest kernel for the latest hardware.
> I did `do-release-upgrade -d` without realizing it was a dev version, then after a few minutes of reading I realized it was, so I cancelled it, and rebooted my computer.
Yeah sorry, Ubuntu doesn’t offer safe upgrades. I suggest if you don’t have much Linux experience (and even if you do) OpenSuse Leap/Tumbleweed which has full snapshot & rollback support[1], and since recently fully transactional upgrades as well.
There are OS issues, hardware issues, and driver issues. In terms of OS, Ubuntu/Gnome 3 still hasn't quite figured out hiDPI. Wayland isn't quite ready either. But these are relatively minor nits.
The CPU constantly throttles. It has power management issues where the USB isn't providing enough power if the laptop is running off battery. One of the fans in my 3-month old laptop is making funny noises. I'm constantly fighting limited USB bandwidth on the USB-C port, where I have to decide which 4 of my 6 devices to plug in. I get lots of kernel oopses with dropped/hung PCIe transactions.
And that's just my laptop. The other folks in the company are having similar problems. Basic stuff, like the camera doesn't work at all in the latest XPS 13 on Ubuntu 18.04.
It is pretty frustrating dealing with this relative to my Mac laptop experience which is essentially everything just works.
No hardware is infallible, and we've had problems with our machines, but Dell customer service has been great - they usually send an engineer out the next day for our company.
Can't deny, though, most people's machines display Ubuntu Experienced An Internal Error as soon as they log in, and we just dismiss the prompt. Doesn't seem to affect usability. Otherwise, the machines run Ubuntu very, very smoothly with all the hardware working. I upgraded one of our older XPS 13's to 18.04 with no problems.
It does help that it's also the laptop that Linus is using: https://www.cio.com/article/3119876/linux/linus-torvalds-pic...
NixOS config: https://gist.github.com/Ortuna/b6e95d6baefd2a1683ddd848f485b...
[0] https://www.dell.com/community/Linux-Developer-Systems/New-K...
Compared to a Mac workflow, you won't have a handful of business apps (like WebEx or Office) but its mostly identical. Both Fedora and Ubuntu are on 6 month release cycles, so you can use your system's package manager (dnf or apt) instead of relying on Homebrew. There's also user collections of packages available from Fedora's COPR or Ubuntu's PPAs.
You'll see better performance with containers, since you don't need to go through a Hyperkit VM and docker will just run natively.
Out of the box, both run the GNOME 3 desktop, which is a bit of a mixed bag. The simplicity and ease of window management with shortcuts is great, and you can install extensions to modify GNOME's behavior. Unfortunately performance isn't exactly smooth, but you can look at other full-blown desktops (KDE, MATE, Cinnamon, Budgie) or fast window managers like Sway or i3.
With regard to hardware support, I went with the Dell XPS 13. It's a great machine and I've had zero issues so far. Fedora even handles firmware updates through the update GUI.
Thinkpads specially the T series comes with TLP [1] support. So, the battery life is very good. Apart from that, the keyboard is pretty comfortable, display resolutions are Full HD+. I cannot recommend it enough.
[1] https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-ma...
Also, some small UI things are just nicer in macOS, like how well scrolling follows input, making it seem like you're physically moving the content. That illusion is lost on Linux.
Most other things are as nice, if not nicer. I chose Fedora 28 Workstation, rather than Ubuntu, and it's all really quite polished. It's also a hell of a lot snappier, even on the same hardware. I wouldn't recommend using Linux on Apple hardware, though, primarily due to how annoying the gmux (dual GPU multiplexing chip) is to deal with.
I might be buying the XPS 2-in-1 when the 32GB model comes out. AMD > nVidia graphics when it comes to Linux (nVidia are assholes). I would've picked Ryzen, but it seems a bit immature for laptops.
I think you must have palmed your touchpad while typing out that list and somehow messed up the order. This is what you actually meant: 3 physical button trackpoint with textured nub gifted upon us by the Thinkpad Gods of old >>>> apple stuff > other stuff. There shall be no further debate!
Ah how I wish I still had a laptop with the nub (even if it had a touch pad too). I've never really understood why that didn't become standard since I think Toshiba and maybe even Dell had a variant of it.
The multi-gesture touch pads are nice, but for precision and minimal interference without a standard desk mouse the nub is supreme.
ThinkNubs are good. Apple Touchpads occasionally look down from their seat at Mount Olympus to be entertained by watching the mortals, such as the ThinkNub, go through their silly struggles of life.
PC touchpads, on the other hand, can only be explained by their creators being evil incarnate. Such malice cannot sprout from nothing.
Thinkpad Touchpads are particularly evil, as the BIOS touchpad disable on some Thinkpads with ThinkNubs disable the mouse buttons belonging to the ThinkNub.
As Jesus once said: "Transplant me an Apple Touchpad, completed by the pointer stack from macOS, onto a PC with Linux, and thou shall be permitted into Heaven."
Seriously, though, the Nub is like a joystick, where touchpads, touchscreens and mice are basically absolute positioning devices when implemented correctly (such as on a Mac)—that is, move distance N on the touchpad/touchscreen/mouse, and the cursor will move exactly that distance, as if you had physically grabbed the cursor and moved it. With the nub, the distance becomes a function of time+accel.
> With the nub, the distance becomes a function of time+accel.
On the Pinnacle of Godly Perfection pointing device that is the Thinkpad Trackpoint, which was used to create life the universe and everything along with a lot of perl, it is a function of time+accel+pressure!
i.e. the pointer moves faster as you push harder in any direction, like any good analog joystick. Except for the Trackpoint you need only to twitch your index finger the tiniest bits to traverse the whole screen.
Might feel weird at first but you get used to it very quickly. Dragging my finger all over the laptop surface is tiring. Same with Mr Mouse. Yes I keep the sensitivity very high.
I included pressure in accel. Yeah, like a joystick, you can just use time held to move across the entire screen, but just like a joystick, it makes using the mouse akin to driving a small RC car around on your screen, trying to park it on the button you want to press. And just like with an RC car, you can miss your target.
With tracking pointer devices (touchpad, touchscreen, wacom), with a proper stack (i.e. only touchpad on macs), the mouse becomes your finger, reapplying existing finger dexterity entirely andgiving an extremely intuitive input method. Except for bad touchpad stacks, you don't miss or even need to look.
Yes, the touchpad requires full index finger flex/extension to get from one end to the other, but so does moving from "c" to "t" on a QWERTY layout, so I can't see that as a valid complaint. Unless the touchpad has a bad surface texture (i.e. not Apple-style glass), the same goes for fatigue—you're moving your fingers way more when typing.
The only downside I can think of for touchpads is that, like mice but unlike ThinkNubs, one must move the hand away from the keyboard to use it in most setups. ThinkNubs are neatly placed near the homerow, although they eat part of the keys as a result.
(Mice are a bit in between, as they use shoulder/elbow/wrist to aim, which is far less precise than fingers. They still reuse physical dexterity, but are less precise than finger based tracking inputs. Trackballs and rollers are just weird, though.)
Laptop-wise, I can recommend the Asus Zenbook. The keyboard backlight does not work on Linux, and Bluetooth is a little flakey, but apart from that it works very well for me (on openSUSE Tumbleweed, at least).
There are two things I miss: At work, we use a VoIP-based PBX which also supports software clients; the client is available on Windows and Mac. So on the Mac, I could work from home and use my headset for telephony, which was very, very convenient. On Linux, I have not been able to get this to work. The other thing is that on macOS, the text input widget understands the basic emacs key navigation shortcuts (Ctrl+A -> Jump to beginning of current line, Ctrl+E -> Jump to end of current line, etc...); all the muscle memory I had build up over years of using emacs finally paid off in a big way, because I could use part of it everywhere.
Apart from those two pain points, I was very happy to get back on the GNU.
Price is probably high for the hardware though I think it's goes back into further open-source libre development.
But if it is important to you, you'll actually 'own' your computer.
I do miss the integration with my iphone though. I used the messages and notes app a lot in osx, so it's kinda annoying to not have that anymore.
Also, i'm using a Thinkpad. Would recommend.
*EDIT I now pretty much use the trackpoint 100% of the time, and don't miss the trackpad gestures at all.
I'm running Arch Linux, for what it's worth. My use of several Macs over the last few years was basically confined to a web browser, Mail.app, and Terminal, where I installed a handful of GNU userland tools from Homebrew and essentially used it as if it was a Linux machine. I never bought into the Apple ecosystem with Photos, iCloud, messaging, etc. My pictures and music are organized in directories and I use open-source applications like darktable and GIMP (pictures) and cantata and mpd (music) so I didn't have any lock-in there.
Caveat: I'm on the systems / devops side, not dev.
I've loved it but I do miss the trackpad (although I've adjusted my workflow to use physical buttons now + thinkpad's trackpad). I also miss the larger screen (15" was really nice).
Whenever I go back to my RMBP 15 for moving files over, I've noticed the display is still nicer for text. Even with installing some calibrated color profiles, I haven't been able to match the same perfection the RMBP 15 had. Is this something you ran into at all / how did you tweak?
But I don't like Apple's current lineup (no display options/only glossy screens, keyboard sucks IMHO, no port options). More than everything else, I took offense in Apple selling these as "Pro" machines (and at "Pro" prices) when there's really nothing "Pro" about them compared to older PowerBooks with replaceable batteries and RAM, all the ports, etc.
What did I miss when going back to Linux (XPS 13, Ubuntu)? Not much really. SketchUp for architectural 3D drawings (though I haven't checked with Wine recently which is an unbelievably capable environment for running Windows apps; back then it did almost work but would crash when attempting to save), general polish (Ubuntu is a bit frugal and ugly vs Mac OS), power management and touch pad as good as Apple's, and a nice shopping and unpacking experience, albeit for a price. Didn't miss iTunes, nor Mac OS's slowness :)
On my work computer I still have Windows which I didn’t boot into for more than a year. It was my safenet during my windows -> linux switch for full time. If stuck with task - 5 minutes and I am back to Windows. Don’t recall actually using that capability, especially after I set up free testing Windows VM on Linux.
Good luck!
Ask yourself whether working from the coffee shop or couch is really critical or even beneficial to your productivity and mental health.
My biggest realization with workstations is that they are more of a location than they are a computer formfactor. Habituating yourself to work in the work... place liberates you to not work everywhere else.
Back in the day, portable computers were luxuries for the important people in a business. Now I see the true luxury is NOT having a portable.
EDIT: Seconding both the Thinkpad recommendation as well as the suggestion to reconsider a workstation.
Ubuntu worked out-of-the-box, and macOS works well after a few tweaks. I also have a third partition to share files between the two halves. Clover bootloader has a friendly way to select which system to use on boot.
I'd like to use Linux full time, but the software I need isn't there.
I bought a Dell precision laptop at the end of 2016 and installed ubuntu. This wasn't the first Linux machine for me but it was the first I really worked at.
At around the same time I set myself the goal of reducing any and all dependencies on gui apps other than a browser. I quit dayone, various database guis, etc in this period. This was key, I also got better at many cli tools in the process.
I spent a considerable amount of time building a dotfile config that was cross platform / worked with my work mac and other apple computers. This was really painful, it was never 100% consistent but it did all me to prove to myself that it was possible to productively use Linux - something I'd always been skeptical of before, for whatever reason.
I then took on a massive downsizing effort and sold all of my computers, this was also a lot of work. Disassembling custom PC's and selling laptops on eBay took longer than expected.
I was then left with only my work computer. Down from 6 laptops/desktops. My work laptop was a max spec first gen touchbar 13" at the time.
I then got a new job, when asking for my new laptop I bit the bullet and asked for the new Dell XPS 13.
So far I'm getting on fine, native containers is the biggest benefit I've seen personally. I miss photoshop a bit as I haven't invested the effort to run it properly on Linux via wine etc.
I then used it as my daily driver, dropping back to Mac if I needed something.
I haven't had to use MacOS for a couple of months for anything. Basically have a useless SSD sitting inside my mac now :)
Added benefit is I can plug the SSD straight into my PC at home and have my full work environment up and running. No driver stuff-around either, it all works perfectly.
I would honestly recommend arch/antegeros. Ubuntu and others are over-hyped for their "ease of use".
USB-C and USB-A ports no USB 3.0 protocol.
It's a "fast" SSD, but it doesn't come close to saturating USB 3.0, and is basically equivalent to an internal (not PCIe/NVMe) SATA based SSD.
If you wanted to future-proof, you could get a thunderbolt 3 enclosure.
Also, fits super comfortably in my pocket (smaller than a phone).
Getting geeked up over a switch is probably overdoing it. I mean...you just do it. Install Fedora on it--I mean, you could install Ubuntu, but the movement seems to be away from Ubuntu and for good reasons, in production I wouldn't run something that wasn't CentOS, and Fedora is close enough while removing a lot of the pain points of dealing with Debian derivatives--and start working. It'll suck at first, it'll suck less over time, you'll get there. You'll learn to RTFM if you haven't learned it already, and you'll get there.
As a developer, using either is basically substitutable. I still use a Mac laptop because Linux laptop support varies between okay and awful (and System76 et al make computers that feel like junk, though Dell's support is worth calling out as a positive--my next machine is probably an Alienware 15, largely because of the keyboard and the GPU) but when not on the road I use the Mac mostly for Keynote and Photoshop, not writing code.
Every Unix development tool I use (i.e., I still have Windows partitions around for good reasons), from VS Code on down the line, works on both Linux and OS X without trouble. There's really not much "switching" to be done. If you use novelty stuff like Espresso or whatever it might be a trickier situation, but I feel like most developers aren't in that boat.
Consider Dropbox or similar for syncing dotfiles, though. Sharing those across will reduce your frustration a decent bit. Just make sure to have separate files for Mac and Linux-specific stuff, where applicable, and source them appropriately.
I liked OpenSUSE when I used it. Fedora's the path of least resistance for me. I kinda feel like "Not Ubuntu" is a bigger thing, in 2018, than whether you're in on Fedora or OpenSUSE or Arch or whatever; the tide seems to have turned against it as a server operating system in my neck of the woods and I tend to think you should try to stick at least reasonably close to what you're deploying on.
The newer kernel features aren't typically as important as stability for production workloads.
So some common tips that you might find useful:
Laptops commonly come with SSDs or even NVMes today. If you have enough RAM, you can avoid enabling swap during installation, that will provide you more useful space on your expensive drive.
Enable periodic fstrim on your drive, to make sure your deleted blocks are reused.
If you are using Samsung NVMe, you might want to use bigger partition offset than just common megabyte alignment. I was recently researching this, and found out, that it can make some performance difference if you use 3 MiB offset instead of 1 MiB. It's a bit of a difficult topic, because Samsung staunchly refuse to answer questions about their NVMe erase block size. In general it's recommended to have partitions aligned to that size for best performance. You can run various testing tools like fio before setting up the system to find the optimal layout.
Prefer AMD for your GPU (Vega is the best today), it will save you a lot pain (i.e. avoid Nvidia and especially Optimus).
Also, as others said in this thread, consider if you need a laptop at all. Desktop would be cheaper for better performance hardware.
This meme should die already. Nvidia has supported Linux better than any other vendor for 10+ years, and still does. For quite a long time, it was the only way to play 3D stuff.
Today you'll be better off with AMD GPU no matter on laptop or desktop. AMD did a good job with upstream kernel integration (amdgpu) and developing Mesa for Vulkan and OpenGL (radv / radeonsi). I myself was Nvidia user for a long time and switched to AMD around a year and a half ago, when Mesa finally caught up features wise, so I know this first hand. Nvidia is clearly a worse choice today.
Linux was fantastic, except for two things.
1. Sketch. All the competitors aren't even close to being up-to-par, and it's become an industry standard. 2. Docker and permissions. I can't believe it was so much harder to deal with docker in Linux than MacOSX. I constantly struggled with docker creating files as root. Even when I explicitly defined the $UID or $USER for docker-compose, I would still see the docker image that ran a Rails instance create files owned by root in `log` and `tmp`.
I highly recommend trying out Ubuntu in the cloud to give Linux a trial run, you might be surprised by what you love and hate.
- As others have pointed out, the MPB gestures/touchpad are second to none. The size alone, let alone the responsive and consistent gestures are conducive to my productivity
- OSX posix support has never let me down. As of today, I have been able to develop anything on a Macbook that I would use linux for. This increases my productivity and battery life
- On some variations of linux, notably elementary (which I somewhat ironically chose in order to get as close to the OSX experience as possible), alt+tab goes to the next open window as opposed to the one you most recently used, as it does on OSX. This drove me crazy
- OSX has more support for more apps than linux does
- You can always run linux in a docker container or a VM if you absolutely need it
Just my two cents for someone who is weighing between Mac/Linux
OS X is literally missing half of semaphore.h. Actually it's worse than that because the functions aren't technically missing and your code compiles the whole time as you write it but when you run it you find out that nothing works because all the functions do is print "function not implemented".
I switched from a late-2015 Macbook Pro (some say this is the last time a MB Pro was good) to a Thinkpad T480s w/ Fedora 28. My workflow on Mac was fairly simple -- sublime text, npm, git, and a web browser -- so my transition was probably smoother than most (although I now use VS Code instead of Sublime Text and I don't think I'll be going back).
The biggest pain point for me was losing the Apple trackpad. I loved the 3-swipe gesture to switch between workspaces and although I have shortcuts for this on my new xfce desktop environment it just isn't the same. I did, however, fall in love with the Thinkpad trackpoint (nub). I'm having a few minor issues that I still need to work out (like my screen not locking when I close the lid), but overall I'm really happy with my decision so far.
[0]: https://askubuntu.com/questions/92169/touchpad-gestures-to-c...
Having said that, I have recently started collecting cheap as chips (AU$120-AU$ 300) Lenovo Thinkpads, X220, X230 etc. It continues to amaze me how excellent a dev env a 7 year old laptop running Arch and i3 is. Buy a bunch of ebay and have a play.
I got it off Entroware, who sell laptops with Ubuntu installed. I'm more or less done setting it up and I'm able to use it for the exact same work that I use my MBP for. (It's a backup machine for my c++ dev work). Ended costing maybe half what the MBP cost, with i7 proc, no fancy graphics card.
There hasn't been a lot of things to do, really. I went with Ubuntu MATE, on a recommendation. It seems fine, very easy to customize. I've added a dock that came with it but wasn't configured that behaves just like the MacOS dock, and I removed the panel from the bottom. Also configured the top panel to have my main progs available, and to hide itself until hover.
All the software I need is available in Linux, except for SourceTree. So I just use GitKraken instead. Some things I expected like Python 3 didn't seem to be there, or at least Python 2 was default. I just grabbed Anaconda. Load of other minor things are gotten the same way, either off terminal or from one of the manager apps.
I had to change the font to Garuda from Ubuntu. Something about it didn't seem right, like it was too wide or something. I also had to change some colors. All pretty small stuff.
There's a terminal called Tilda that pulls down on F12, that's quite a useful thing. I had to change colors on the normal terminal to look like Homebrew on the Mac. But I had to do that on the mac too.
Trackpad works pretty much like the MBP, slightly to the left. Not sure why they'd do that, but it's not so far over that I can't use it. Keyboard is fine.
I found it very similar to the MBP. There's not really much difference, things work pretty much as expected. Linux is probably more configurable, at least it would appear there are more internals for you to mess with.
Only noticeable difference as a dev is the screen. MBP retina screen is far better, but that's not so much to do with the OS.
I am really happy with it. It’s running Ubuntu 18.04, the performance is really good. I have the 2560x1440 screen and I don’t use scaling; it’s small but I have lots of real estate.
I like how light it is and how well it makes use of its form factor. I like the keyboard, I also like that I don’t need to worry about a stray hair causing my E key to stop working.
The only issues I had were some changes that needed to be made to system configuration so that it would sleep properly.
There are obviously political and ethical aspects you may be concerned about but I think it's better to just not get into that now.
You mention needing a laptop with hardware supported by Linux. I would recommend first beginning with looking at various laptops sold with Linux. This should take care of any hardware incompatibility others have mentioned (though do your research).
Linux (or GNU-Linux) packages most of it's drivers in the Linux kernal (please correct if I'm mistaken) so that if a piece of hardware is supported it is ready to go after you install the OS.
It should be noted however that graphics cards/units have various levels of support with from what I understand Intel currently having the best open source support with Nvidia haveing pretty decent proprietary drivers. Ati/AMD varries though that shouldn't necessarily preclude you from an AMD processor. Importantly do your research on support for those components.
As far as software is concerned that I haven't the foggiest idea what to recommend. If you just need a web browser, an office suite, and streaming video, then Ubuntu I would say handles all that pretty good. (It's all I've run for the last couple years, and mixed before that).
Most importantly patience, research, and if you can't find an answer always ask. And be open to learning (until you die).
I've got a mac mini when my gaming rig died a couple of years ago, tried to make OS X my main thing but it feels so damn slow in comparison to GNOME, which is surprising because GNOME ain't exactly lightweight these days. Basically opening finder takes anywhere up to a minute where-as nautilus is more or less instant.
Used to find image editing lacking, but Inkscape and GIMP are pretty decent replacements for Illustrator and Photoshop.
The only major pitfall I've ever encountered is NVIDIA Optimus (weird IGP/GPU hybrid thing NVIDIA had going on around when i3/i5 laptops were the new hotness), drivers for it were a bitch to the point where Linus publicly said fuck you to NVIDIA during a Q&A. Other than that driver support has actually been better on Linux than Windows in my experience.
- Cloud reliance has been key. GSuite and Dropbox have kept me from having to install much on the Budgie system.
- Budget a half day on StackOverflow, etc. for problems you may have getting Dropbox, Bluetooth and some other items working seamlessly with accessories... although some of this is unique to Budgie.
- Don't expect much interoperability with iOS products.
- Key apps I use are available natively, eg. Slack and Atom.
I'm still going back and forth some and find the desktop/UI customization available in Budgie has increased my productivity and decreased strain.
I'm missing hazel, bitbar and geektool applications quite a bit and haven't found a suitable replacement that is as supported and easy to configure as those apps. I can replicate most of the functionality with Python, conky, etc... but I haven't the time to do so.
One problem I really just couldn't get my muscle memory to work around is that in all the Desktops Terminals have different shortcuts (Ctrl+Shift+C/V) than all the Desktop apps (Ctrl+C/V). I was hoping I could find a Desktop preconfigured to use the Super (aka Windows) Key similar to macOS' cmd-key: i.e. every Super+X shortcut goes to the GUI layer (for example for Copy & Paste). This leaves room for Ctrl-X shortcuts send Control-Keys to terminal apps. Anyone having a suggestion to improve that?
One thing that can be relatively easily done is to remap the super key to act as an additional ctrl key or to swap the ctrl and super keys. But that wouldn't solve the "terminal consistency" issue.
Some terminals allow you to change their keybindings to use ctrl-C and ctrl-V for copy-paste. However, if you do this you need to also remap the key you use to send a SIGINT to the current running process.
https://askubuntu.com/questions/53688
All that said, most people I know just get used to using ctrl+shift for terminal shortcuts eventually.
BTW, in Linux you can also use the middle mouse click to paste. Select some text and then click the middle mouse button to paste the current selection. This works the same on regular apps and the terminal.
I find I spend less time screwing around on the laptop in general, and the time I do spend, is somewhat more productive, so I'm very pleased with the result. I like the modern Ubuntu.
What do I miss? The touchpad. iTerm. Mail.app. One clipboard. That's about it, and not that strongly.
A pitfall you'll want to avoid: use the xinput driver, not synaptics, which is way, way too sensitive. I think this issue is resolved in Ubuntu 18.04 anyway though, so you may not even run into it.
What I'm doing to smoothen the transition is that I started doing my personal coding in VM (VMWare Fusion), full-screening ElementaryOS. That is to get everything set up and more into muscle-memory. Client work will still be done on MBP.
Then I'll switch my desktop over to Linux (hackintosh). After that laptop.
Seriously though, for my job of data wrangling/programming/small hardware design projects... linux does it all and the tooling is entirely FOSS which means I can and do scratch my own itches.
I tried using Mac a few times now, and it just drives me insane. There's a hodge podge of things to try and work around it being a Mac like homebrew, but in the end its still an awkward to use Mac.
The fastest way to learn how to use Linux as opposed to macOS or Windows is to dive right in and start using it at least on your personal computer.
Honestly there isn’t much difference between them if you are spending most of your time in a text editor anyway. I mostly keep MacOS around for Adobe. There are great alternatives to Photoshop, Lightroom, and Illustrator and I use them when I can. It’s really other people that are the problem :-)
- Alfred and all its integrations
- Dash for progamming documentation. Yes, I know Zeal etc. exist, but none of them come even close in terms of usability
- Karabiner-Elements for keyboard remapping. Might be less of problem on non-apple hardware where the modifier keys have a saner layout.
I went with arch again on some cheap second hand laptop, because I remembered the install to be a good compromise between understanding the various parts of the system i was about to use, fun, and without too much voodoo. I remembered it to be more stable than my ubuntus. Maybe because I had less apps.
When I got my arch again, time to chose my UI. I tried dwn because I was now free from a window environment and wanted to give tiling a try. I loved it but missed something elegant. So i gave KDE a try because I was on KDE back in the days of ubuntu and arch. And I remembered KDE on arch to work much better than on ubuntu but that's another story. But with KDE, too many of the apps were old school creating incoherencies between apps UIs, I missed the elegancy of my mac. So, I gave a try to good ol' GNOME, but with the 3rd version although I had only heard bad things about it until then. It was perfect for what I needed.
Gnome takes the good parts of macos and leaves the rest. If feels polished and the apps seem well integrated with each other. I can configure the shortcuts the way I need them. My setup is now a Spacemacs instance for everything dev / sys admin related and the rest of gnome for emails, blender, etc. And honestly, I like the gnome UI, it's smooth, stable, easy. I get no crashes and no lag. The Apple fanboy becomes a GNU fanboy.
So far the only thing I miss is being stuck with evolution as my mail / calendar client because I rely on sending and accepting invites and gnome mail and gnome calendar don't have that feature yet. Evolution is gnome 2 UI and is incoherent with my gnome 3 apps, poor me :( Time for me to contribute !
But then, then you also get the fun part. A package manager, on Arch (or Manjaro being the Ubuntu of arch as I understand it) you have pacman and yaourt. I've never had to compile anything by hand, if it's not on pacman its on yaourt. Need Blender / Gimp / Krita for whatever reason ? done. Libre Office, Anything ? 4 word command and done. The most obscure add on for whatever app ? its on AUR. And I assume it's the same for everything else. Event the app starter shell thing is a great replacement for spotlight.
Finally, my emacs now works perfectly. My OS X version had some random bugs occasionally making it unusable. So I can finally have my tiled environment for anything related (missed you dwm workflow) and the 'elegancy' or GNOME 3 for everything else just an alt tab away.
So all an all, the Apple fanboy I had become doesn't need Apple anymore. Actually, if I were given the latest macbook pro, I'd miss my arch. It just sucks because, I miss Apple hardware, say what you want but it's hella durable.
I could go on and on, but this message is already way too long, and I don't want to spoil all the fun.
Hope I helped :)
P.S. Gnome 3 haters, come on, for a noob like me or my grandma, it's amazing, I'm shocked. It took me 30 minutes to setup my shortcuts the systray and a few other things. and the shell works really well, it's a good replacement to spotlight.
Last time I check ubuntu works fine from bootcamp. (But last time I checked was 2011 or something)
I had used the Mac privately and professionally for a living since around 1987, as a typesetter, graphic artist and software developer. My harddisk contained all private and business data and had never seen a fresh install since the first version of MacOS X - I was successfully updating the OS ever since. Shortkeys were of course in my muscle DNA and I new every file in the Library-folders by name. Hard to imagine to leave that experience for good. But I got so concerned about Apple's way into entertainment electronics, that I was commited to leave in time.
Hardware-wise I switched from the MacBook Pro 17" first to a Lenovo Thinkpad W520, and four years later to my current Tuxedo XUX707. Both computers I liked a lot, but the Tuxedo I really love. It is a beast with 32GB RAM, 4TB HD, 256 GB SSD, desktop i7 7700, 4K monitor and a dedicated Nvidia 1060. It is heavy and loud, more a gamer PC than a laptop, but performance and reliability are incredible. I have two external monitors connected to it.
I prepared the transition for about a year. First I tried a couple of Linux distros (on a second partition of my gaming PC) and after a while I decided for Ubuntu. I made sure to execute at least one major distro update of my final selection of Linux candidates to make sure they ran flawlessly. My favorite was Linux Mint, but it failed on one of the upgrades and so I ended up with Ubuntu. Unity was never an issue for me.
Then I investigated how to transfer my mails (some ten thousands), but I had used Thunderbird already on the Mac and so there was no trouble at all. Next I transferred my data to the Ubuntu test machine and played a while to find, how well I could continue with my daily chores. Turned out to work quite well. At that time I was not much into graphic design any more, but much into software development. I found comparable software for everything except Adobe InDesign (Scribus just won't do). I replaced Lightroom with Darktable, Photoshop with Gimp (do not like Gimp a lot, but it works for my needs) and later Krita, Illustrator with Inkscape and Microsoft office with LibreOffice (and later Softmaker).
Not all of the replacements had the same quality as on the Mac, but they were ok, at least no showstoppers for my commitment to switch. In many domains, especially development, text processing and the like, I was overwhelmed how many good (and many free) solutions were available in the Linux world. It was sort of enlightenment. Of course, there was a lot of new stuff to get used to: application installation via package managers, shortkeys and the like.
After about 3 months of "playing" with the prepared test system I decided to switch and I knew that I would have to switch hard. I was very afraid to end up living in two systems. So I decided for a D-Day, did a last synch of data and put the Mac in the shelf. Yes, the first month was hard, but as I was commited to never return, I just went through and it worked. Today, I could not imagine to ever return to the Mac.
I never had crackling sound, blinking screens or anything like this. My Linux computer can connect and handle much more hardware than any Mac I ever had. It is very possible (and likely), that certain computers will not work well with Linux - this is something you have to make sure with a test installation before you switch, but it is for sure not a generic issue. I switched to Tuxedo because they offer Linux-tested hardware (and they build the computer as you want it). The worst hardware issue I ever ran into was lacking support for keyboard lights.
There are occassional issues with the proprietary nvidia-drivers, though, that can really drive someone mad. I know how to handle this by now, but this was the only real annoyance I ever encountered.
One word of warning, though: I have always been a developer since my childhood and I was pretty experienced on the commandline long before I switched to Linux. This might give me an attitude and advance that other Mac users might be missing and that might make a transition more difficult. While the standard Ubuntu system will be sufficient for most users out of the box, there might arise the need to fix or enhance or adjust things and while this felt very natural for me with my background, it might be a big hurdle for others.
My setup today is: I live completely on the Linux laptop. I still have a Mac on the desk for compiling iOS apps and casual use of Adobe InDesign. I use the "Das Keyboard" keyboard with unlabelled switches and the synergy keyboard sharing software, so I can use the Linux computer and the Mac as one computer. I have the keyboard-layouts and shortkeys of both operating systems in my muscle DNA now and in addition a good deal of the Emacs-shortcuts ;-)
It took me exactly 20 full minutes to make its acquaintance and start working again.
That is my transition story.
[EDIT for context: I started using Linux in 1998 with Debian and no out-of-the-box support for my Intel740, so I know a thing or two about Linux and drivers]
I've used Linux as my primary system since late 90's. I switched to a Mac for a few years twice and back to Linux. My motivation for the (latest) switch is the complete lack of quality hardware and the cost of buying a Mac (not to mention Apple's complete abandoning of the desktop). For details, look at all the discussions on HN about the latest MacBook Pro.
I would echo what several people have stated here, about getting a Developer edition from Dell preloaded with Ubuntu. Those Precision laptops are not the same as the XPS's, though they look alike. The hardware is just different enough to make it easier to run on Linux.
The way it worked for me is: I took stock of the apps I spent 90% of my day using on a Mac, which are: gVim, Terminal, Chrome, Firefox, Slack, Spotify, Keybase, Dropbox and a few system monitoring things.
All of that runs great on Ubuntu out of the box and with an hour's worth of Googling, you'll have your laptop configured exactly as you want. The only real issue for me was dealing with the touchpad; all that took was installing a different driver and I was done.
I do install the latest kernel when it comes out, but that's cause I like pain and is completely unnecessary.
It's been a year since I made the switch and the only thing I miss from my Mac is Sketch. There is Gimp and Inkscape, but it's not the same.
My workflows are the same, if not better. Running the same OS as the EC2 instances I'm running keeps a lot of dumb mistakes from deployments.
Being able to spin up a bunch of Vagrant boxes or Docker images and not have the UI come to a halt is fantastic.
Easiest option, install a Vagrant box with Ubuntu desktop on it and use it for a day. You'll see if you like it very quickly.
The aging MBP finally wore out in 2016 and no longer powers on (but after 5 years of daily use, I'm quite impressed with it). I bought a custom-built Clevo gaming laptop from Scan's 3XS division, since it gave me a lot of say over the hardware - I chose Intel and nVidia where possible to ensure compatibility. I intended from the start for the laptop to run Mint, and it has done so impressively - it has a 1TB SATA SSD for the OS (which I have dual-booting Windows for games) and a second 256GB NVMe SSD dedicated to my Steam library. I like that the machine has enough RAM (16GB) that I can casually jump into a Steam game whenever I feel like it without closing what I've currently got open, and that the RAM and SSDs are upgradable. It's also covered in ports either side, including ethernet and 4 USB3.0 ports. And it cost me less than half that of an entry-level MBP.
I found Linux is mostly there, but there are some things that Apple still does much better. The touchpad is the most obvious - even using a utility like Fusuma, multi-touch is still only fluent on a Mac, and the Synaptics pad on the Clevo often takes several swipes to register. The keyboard is also nowhere near as nice - I have to press the keys very hard, and often use it with an external. The UI, however, is extremely usable and familiar, so much so that I've converted family members using it. The hardware support is excellent - all the hardware, Wifi, USB ports etc. worked out of the box - and the performance is superb. I spec'd a good i7 chip for future-proofing and it's still extremely fast, and the Geforce graphics handle 3D gaming with ease.
One major hardware problem I had was that the screen cable wore out after only a year of use, and although it was replaced under warranty, it seemed like a very silly thing to wear out so soon. For comparison, the only hardware problems I experienced on the MBP were a detached Bluetooth antenna (probably from when the previous owner upgraded the HDD) which just clipped back on, and the webcam cable failed, but I was able to buy a spare and replace it myself. I also kept the machine very clean and was surprised at how little dust there was inside it. The bottom panel of the Clevo comes off easily enough, but the fan vents seem much more inviting to let dust into the chassis. Battery life is also abysmal - with the machine set on the nVidia GPU, it lasts less than an hour, and less than 2 days in sleep mode. I didn't buy it to use on battery, however, as I regularly travel between fixed locations so I have mains power.
The longevity of the MBP did surprise me - I used it daily for 5 years with no problems, and went from Snow Leopard (which is my all-time favourite OS) up to Mavericks. The build quality was very, very good, and with the exception of Lenovo ThinkPads, I can't think of another machine I could expect that much useful life out of. However, Macs are no longer upgradeable and are very difficult to repair - current machines have the RAM soldered to the board, and if the SSDs are replaceable, they're proprietary Apple ones. I made it a goal with the replacement to have it upgradeable - the CPU will address up to 64GB RAM so I would be able to quadruple the factory value when 32GB DIMMs hit the market (they seem to be close), and the SSDs are standard. I added the second one 6 months after I bought it. That said, the case does not feel anywhere near as solid and rugged as the MBP's metal chassis - I took the MBP around the world with me, but the Clevo feels a lot more fragile, so I take the ThinkPad instead now. I looked at the T-series ThinkPads but none of them had offboard GPUs when I was shopping.
Don't forget, with Linux, you can easily try before you buy - download an ISO, write it to a USB stick and boot your current Mac from it, then check out the OS from the live environment. Try a number of different Ubuntu variants, e.g. Gnome, MATE, Kubuntu, Xubuntu etc., see which GUI you get on best with. For hardware, I would definitely recommend ThinkPads.