End-user Linux has definitely improved in the last few years.
It offers a lot of attractive features for what I imagine to be the typical HN demographic.
That being said, it's still got rough spots that OSX doesn't. It works great when it works, but when it doesn't....
Font rendering, display/compositor fragmentation etc...
Inb4 the anecdotal "well it works for me I just had to download the xf86 font library and compile with a legacy glibc version..." crew comes in with a thousand and one rebuttals. Problems like that are still a suboptimal user experience, no matter how you slice it.
I'd definitely consider a Linux daily driver for some of my work, but there are things that are just going to be less painful on Apple.
Maybe I'm missing something, but font rendering seems fine on Ubuntu without any after install steps.
I've been using Ubuntu exclusively for well over a decade for everyday work, only occasionally going into a Windows VM, and it's really been perfectly fine, great even, as a developer. I bought a X1 Yoga the month after it was released and Ubuntu installed perfectly on it, the only thing that didn't work out of the box is the fingerprint reader.
Until a year ago, battery life wasn't as good as Windows/Mac, but it's very good with the latest versions.
Proprietary software that some people need to run, now that's another issue, but for most development tasks it's fantastically manageable and accessible, a real pushback against closed systems.
I was using Ubuntu exclusively for around a decade too. It's a great development environment. But about a year ago I needed a new laptop and with the one I purchased, some things didn't only require extra steps to get working, some of them were no fix issues until some indeterminate date in the future.
You mention the fingerprint reader not working out of the box - with my laptop, Fingerprint GUI was basically waiting on one of its dependencies to somehow figure out how to integrate my fingerprint scanner. Things like my active-stylus capable touchscreen weren't supported, and there were no applications to really utilize it even if it was.
I switched to Windows as my primary OS when I realized Windows PowerShell had basically become on par with Linux in almost every degree and that VS Code was as cushy as I could hope for in a development environment. The only thing I've found that isn't supported out of the box is Redis, but I downloaded a ridiculously lightweight version of Ubuntu from the Microsoft store (we're talking <1 MB memory footprint) with one click and was then good to go.
The other thing that really impressed me was all the easy to use tuning software. With ThrottleStop I was able to easily under-volt my processor to completely eliminate things like thermal throttling and improve performance all while greatly improving my battery life. Nvidia support is also way better so I can turn off my graphics card for anything but games - and then there's MSI Afterburner to under-volt my GPU when I am using it.
And yeah, not only do my fingerprint scanner and stylus work on Windows, but Windows has Windows Ink built in so I can easily take screenshots of whatever I'm doing with Snip & Sketch and annotate them with a pen in an instant, and I can use Sketchpad like an on the fly whiteboard when I need to do some math.
Plus, it has art programs like Krita that basically turn my laptop into an iPad Pro when I feel like getting artistic.
And with programs like Enpass, I can use my fingerprint with Windows Hello in place of my master password for stuff like logins and credit card information, which is a lot more secure for someone like me that does a lot of my work from coffee shops.
I still love Ubuntu, but all the offerings of Windows 10 has kind of made me a Windows fanboy and even makes MacOS seem like a decisive downgrade.
I know security is hard and i like to skirt it sometimes as well, but i still think it should be pointed out that a fingerprint should not be used as a password for security critical data. Its at best a username, as you can't change it and a motivated person can trivially steal it.
Not trying to discourage you from using it like that. Its perfectly fine as long as you realize that the fingerprint is only secure against random people on the street or just not very competent attackers... which is fine and is probably enough for most scenarios!
but now on the topic itself... the windows subsystem for linux is perfectly fine for a lot of things, there are quite a few issues however. All files accessible from windows will have 777 for example, there are a few applications that have issues with that. daemons exit as soon as the last terminal closes is another thing many people have to stumble upon.
and ymmv on the issues you mentioned. everything you mentioned is completely uninteresting to me, personally. a good window manager such as i3wm offsets pretty much every shiny-ness windows 10 has for any development purposes.
i do use windows for anything else though. (and am sadly forced to use it at work as well)
It's sort of an after-install thing that takes a minute, but I have some keyboard shortcuts that allow me to do things like jump into a sketching program with the current clipboard contents. And Krita itself (and a few other good apps) are available on Linux.
Not sure how Throttlestop compares to the latest Linux options. I've got many containers going, three instances of vscode, a zillion tabs, performance is not an issue.
But, I realize not everyone cares about a free and transparent world, even when it's more and less as good. It must at least encourages companies like Microsoft to keep opening up and getting better.
> and it's really been perfectly fine, great even, as a developer
Here is the point. It absolutely is fine as a developer. But my parents would never be able to get accustomed to Ubuntu or any other distro. It was hard enough to make them use email.
The truth is that the vast majority of people just want things to work. Like turning on a TV without any setup. Hell, people pay electronics stores 100€ to plugin a cable and run the "find channels" function.
OECD studies have shown that more people than one thinks are incapable of using search in email [1].
That's true: some things are easier on Mac. In particular, I'd say that using software that hasn't been packaged for your distribution is much easier on Mac.
However, your example of fonts is definitely not one of those areas, anymore. Font rendering on Linux is as advanced and capable as any other OS including in the areas of kerning and hinting. It should just work without any user intervention and look great.
I agree with you that compositing/window manager fragmentation is a problem. And this article is a perfect example of that. The author may think that they're happy using i3 with Firefox and st at the moment, but the desktop computing environment has gotten so complex and the expectations of users who interact with desktop applications so rich, that a small hobby project DE/WM cannot fully satisfy all of those use cases over the long term. The only two desktop environment projects that have enough resources to meet the needs of users behind them are KDE and GNOME. And we shouldn't be telling new Linux users to try anything but those two.
FWIW, I've worked at Google for 7 years where we use Linux on our workstations. Many engineers fiddle with various "hacker" window managers like i3, Sway, Awesome, or fvwm. They almost universally give up and switch to GNOME(/Cinnamon) or KDE: it's just too fiddly/not complete and they'd rather use their brain power for solving real problems. The authors example of messing around with dmenu because "unix philosophy" is an example of this kind of waste of time that people eventually get tired of because they have better things to spend their time on.
Personally, I gave up on Gnome and run LXDE a bit like i3 - autopositionning the windows with Fx keys mapped to a given set of coordinates, so F10 will make a window use a square on the left covering 80% of the screen, F11 will move the window to the remaining 20% on the right, thus hiding conky - etc. The only advantage I find in LXDE is that it has a titlebar I can 'reveal' if I wish to mess around and fiddle with the window position (like when tracking the arping replies in a remote lan and using a bit of scripting to see the evolution of the metric as I fiddle with things)
I like my desktop lean and mean. I do not want distractions. When I am dealing with a remote system crashing under load, the last thing I want is my desktop or my shortcuts to behave in weird ways. Things must always work, in a consistent way. Funny thing is I can only get that in Linux... and in Windows 10.
Customization is a feature, just not everyone needs that feature.
So I disagree with your assessment, as some users will find Gnome or KDE too distracting.
Some people try that, too (and XFCE). Admittedly, they're better than a tiling window manager, but LXDE's last stable release was 2016 and it doesn't have a compositor so all of that graphics hardware in your computer specialized to prevent X11 DAMAGE events from forcing applications redraws and for saving power is going unused.
Does using a compositor really _save_ power in practice? GNOME's one certainly doesn't, in my experience. It would spin my fans up after a few moments of dragging a window around. Of course it has no configuration options so it is not possible to fix it. kwin is almost as bad last time I checked on my hardware.
I'm curious what you find distracting in Gnome? Unless you're running in Classic mode the newer versions got rid of everything except the top menu bar and that is less busy than it used to be. The default launcher works very well using the keyboard only, I actually quite like it (though there are definitely other things I don't like about the Gnome defaults).
What I find distracting: the menu bar indeed, the file manager on the desktop, the title bar of the windows, the buttons on the titlebars of the windows
> The only advantage I find in LXDE is that it has a titlebar I can 'reveal' if I wish to mess around and fiddle with the window position
Unless I'm misunderstanding, you can use Alt + left click to move any window around, and Alt + right click to resize. No need to reveal the title bar except perhaps to read the occasional title.
Correct, I really like alt left click to move windows but for some reason I prefer resizing with the title bar even if takes one more event (keypress) to make it show up, and one more to remove it when I'm done.
> I agree with you that compositing/window manager fragmentation is a problem. And this article is a perfect example of that. The author may think that they're happy using i3 with Firefox and st at the moment, but the desktop computing environment has gotten so complex and the expectations of users who interact with desktop applications so rich, that a small hobby project DE/WM cannot fully satisfy all of those use cases over the long term.
Users have different needs and preferences, so I see the fragmentation as a positive thing because it gives people choice.
For me personally, xmonad, one of these hobby projects, has been perfectly sufficient for the last 10 years. I also didn't really touch my configuration much in the last ~8 years. More importantly though, I find it actually reduces my mental workload since I no longer have to handle window placement myself.
Eh, I've been running xmonad within Gnome since (checks git blame) 2011 and I don't think I'm changing things anytime soon. Well, for the first 2 years I fiddled a lot and made sure I could just configure a computer the way I liked with a script. Occasionally I'll have an issue like Ubuntu switching to Gnome 3 but even that, the biggest disruption in years, just took an evening of fiddling to fix.
> Font rendering on Linux is as advanced and capable as any other OS including in the areas of kerning and hinting. It should just work without any user intervention and look great.
This isn't entirely true. AIUI, Apple enables LCD filtering and subpixel rendering by default, because it knows that you're using an LCD and what the subpixel order is. However, these are usually toggleable via the GUI, and even without them it usually still looks fine.
No, my point is that this change only affects non-Retina displays. In my experience (worldwide, many companies, etc) anyone who uses a Mac with an external monitor generally doesn't settle for some POS. It's a high-end screen that matches the MacBook, hence why it's not that big of a deal.
People forget that subpixel rendering was a thing on CRT's before LCD's were around. Subpixel order is pretty universally standardized. Is there an EDID data element for pixel order?
> but there are still things that just going to be less painful on Apple.
Of course OSX is more user friendly now, but Linux desktop has improved by leaps and bounds. 4 years ago you needed to be a developer or extremely savvy to run the average desktop distro, now I would say you just need to be tech sdavvy. I would argue that for the ho hum business cases (not extreme use case profiles like design and video production) that Ubuntu won’t cause any unnavigable issues.
I think in a few years you will see the Linux diaries continue in popularity, especially among developers. Laptops have become commodity items. There just isn’t that much that differentiates (for me at least) a MacBook from a good ThinkPad.
People have been saying that ever since, uhm, the first Mandrake release? It’s so much easier now, soon it will all be so smooth! except every year there is something else to rewrite/rejig.
As soon as auto-configuring XFree was kinda figured out, out goes XFree and in comes x.org. Xorg getting to the point where having 3d animations doesn’t require kernel-module-config expertise? Out goes Xorg, in comes Wayland. Gnome 2 worked out the kinks? Time for Unity! Kde 4 finally getting snappy? time to break it up! Init systems figured out? Systemd! ALSA getting adoption? Pulseaudio! Pulseaudio finally working? Let’s rip it out! And so on and so forth, in an endless churn.
Now, this sort of churn also happens in commercial alternatives; but stuff gets shipped when it’s 99.9% working, left running for years (or decades, if from Microsoft), then maybe gets rewritten with something that must be better (no regressions) or it won’t even ship. In the Linux world, it’s all just thrown over the wall; maybe you’ll be lucky and it will work on your machine, and maybe it won’t. By the time it gets fixed, it will be time to replace it. And so the experience is a perennial struggle against half-finished, unpolished software.
Yes the churn is an issue especially in desktop environments but relatively painless all things considered.
I don't think there has been a single inflection point for me there has been steady incremental improvement.
If you want to think about how far things have come I started using Linux in 2001 with Mandrake. Around 2.2 -> 2.4 kernel switch. So much has changed since the bad old days. I don't want to throw out a "back in my day we walked up hill in snow both ways" style rant but...
-All we had was EXT2 and we liked it...
-You had to manually configure modelines for your video card changing display resolution was more or less a crapshoot
-Apps would exclusively lock the sound card which typically meant the first thing you opened would be only thing capable of playing sound. But you could pipe things to /dev/dsp and have the speaker emit random beeps that was kind of cool
-window manager used to crash a lot and you'd lose all the title bars for all the windows this happened fairly often - cntrl alt backspace is still in my muscle memory years later.
-Printers were basically impossible to configure.
People complain about changes like ASLA, pulse audio etc but I think there is a lot of rose tinted glasses being applied to how things were before. Sure some things aren't perfect but neither was their predecessors and on the whole they fixed more things then they broke.
I am not saying things aren’t better than they were; but they are still not as good or polished as the commercial counterparts (who obviously didn’t stay still), and looking at the overall trend, they will likely never be - because of innate problems with the development model (release early and often, even if it’s basically unusable).
So I can agree that “Linux will get smoother”, because progress is more or less inevitable, but “linux will be as smooth as [Windows|MacOS]”, as upthread implied? Never going to happen.
The reality is, people get paid more to develop for the Mac world and put more effort in consequentially, whereas Linux is still mainly volunteer-driven.
> not extreme use case profiles like design and video production
There are a lot of use case profiles that are very ho hum for which Linux is a non-starter. I'm thinking specifically of basically any time you need to use Mac-only software. Likewise, I'm sure there's Linux-only software that would make OSX a non-starter.
IMHO, all of the major modern operating systems are good enough and have been for a while now. Pick the applications you want then find the OS that best supports those applications.
It would be nice if the Purism guys would open some retail stores. Once you can walk in some place and get help it gets to be a lot easier to recommend those machines to less tech-savvy relatives.
Pretty much this, as UI focused developer I abandoned my Linux zealotry back to Windows.
Yes Hollywood is pretty much sold on Maya and Houdini on Linux, but they use their own in-house distributions and have no issues dealing with binary blobs for performance.
Meanwhile my Asus netbook sold with Linux still can't do video decoding on hardware nor OpenGL 4 support, in spite of DirectX 11 class hardware, because AMD decided to reboot their driver development.
I see lots of advice online to just use the kernel driver for AMD cards these days, but in my experience it is slow. On some of my machines it benchmarks slower than the Intel graphics. In other cases it is faster, but only by about 50% or so. It is disappointing. I still tend to prefer nVidia graphics when I'm building my own systems because even if the driver is a big binary blob it does work.
I don't care much about performance because I mostly play strategy games, my issue with the kernel driver is it's instability, many games will hard crash my system.
> Font rendering the Apple way is a style choice at best.
Given how much of a hacker's usage of a computer is working with text (reading pages, writing code and documentation, taking notes) it's a style choice that actually has a significant impact.
(By the way, macOS Mojave deprecates subpixel antialiasing — a poor decision when there are many non-hidpi displays still being used)
I remember a decade ago when there was more discussion about it the rought situation was: OS X fonts were "blurry" because the font rendering was optimized for stay true to the font shape. Microsoft was "crisp but kerning broken" because the font rendering optimized for pixel alignment, so less grey pixels but shapes moved slightly to fit pixel borders. Linux was somewhere in between however you configured it.
That was the time of sub-100dpi screens though. With 300dpi (Retina) screens these days it does not matter much anymore.
Yeah. I've got a 1440p 27" monitor that I connect via HDMI (USB-C adapter dock thingy) and the difference when I upgraded to Mojave was very stark. I actually prefer Windows rendering now to Mac.
> My 1Password FireFox extension (ubuntu 18.04 LTS) doesn't work on X unless I log in through the website but it works just fine on Wayland.
Hey there! Beyer from 1Password here. It sounds like your issue might be related to my post here: https://goo.gl/cdhFbz
The good news is the underlying bug that was "breaking password fields in Firefox" was recently resolved. You can read about it here: https://goo.gl/uFv5rL
If you are still having an issue using 1Password X after updating gnome-shell, please reach out to us at support+x@1password.com, and we'd be happy to help!
The practical implications of what it means to the end user is that companies/entities that write any GUI-enabled software for Linux are forced to make decisions about what(if any) OS they'll support.
And just like that, we've waded into "cracking open the window manager" just to figure out what's going on.
What is your X session? Gnome/KDE or plain window manager? It might be, that your wm is not launching some service that wayland session is and 1password needs.
Unfortunately, the openness allows for so much flexibility, that many people end up breaking it up. Invariably, they will blame the system and not their changes. If they used the defaults, like they do in other systems, it would not happen.
This was a clean install so Gnome shell - worked just fine on Ubuntu 17.10 and 18.10 with X and Wayland.
After I login through the 1password website, the extension window opens just fine so it might be some input security service, but how would a Firefox extension even have access to a system service like that except through Firefox's built in APIs?
I don't know how 1password works; I'm using keepassxc.
With keepassxc you have native application and extension, that communicate together via socket. The native application can use whatever native APIs it wants.
However, back to you. What's more weird, if it is pure Firefox Webextension, that Firefox (still by default) launches as X11 application under Wayland, so the extension should have no way to know the difference.
That being said, it's still got rough spots that OSX doesn't. It works great when it works, but when it doesn't....
Someone really needs to make Linux distros just work when hooking a laptop up to a projector. The fact that there's so much trouble that's so public and faced with so much concentrated embarrassment is a serious ongoing PR impediment to Linux.
Linux distros got printing licked across the board, so it can happen.
Time before last when I went to a Golang meetup, the presenter's Linux laptop embarrassed him for a few minutes, and lots of devs with Macbooks made some linux jokes at his expense.
This was the story with printing in Linux as well, back in the day. It would work fine for some, and be a nightmare for others.
This is definitely a case where the details matter. The guy who runs Slackware on some no-name laptop is probably going to struggle more than the guy running Ubuntu on the Dell.
It was Bionic Beaver. He was a well heeled SV manager, and he had a fairly new laptop. Not sure if it was a Dell.
This also happened with printing. People would say it worked fine for them, then point out that scroungers on quirky old laptops were getting what they deserved. Really, the fault wasn't those quirky old laptops, but rather fragile and not so well standardized software.
This is rarely (but entertainingly when it happens) a thing - I once waltzed into a job interview and fought xrandr for like 5 minutes to demo my take-home project: turns out mirroring my 1080p built-in panel to a 4k HDMI screen with herbstluftwm/xrandr command line hackery _only_ was... non-trivial. Thus, for the whole 13 months I worked there, I got to share several laughs about how "it's the year of the Linux desktop, yeah?" Embarrassing at first, but life moves on.
(fwiw the sway 1.0 betas, which are more or less i3 ported to Wayland, handle this type of case beautifully, and unless my kernel does Strange Things and panics, I basically plug and play into whatever I want, much like one would expect from the GNOME/KDE experience)
I got to share several laughs about how "it's the year of the Linux desktop, yeah?"
The amount of time that joke's been around should be taken as a sign of a persistent condition.
unless my kernel does Strange Things and panics, I basically plug and play into whatever I want
The kernel doing strange things and panicking doing plug and play was never a thing on OS X when I started using it. Seems to me it's not been a thing for Windows since before Windows 7.
It's long been speculated that one problem with Linux is cultural. Are Linux desktops trapped by cultural expectations?
The only piece of this I'm going to engage on is the kernel panic bit, and only as far as a counter-anecdote (so take it as you will), but I had almost as many kernel panics on a 2016 Macbook Pro over a bit over a year of using it at a past job. In fact, almost the exact same scenarios that I'd see panics on Linux on an XPS 13, would panic the Macbook: plugging in external displays through USB-C/TB3 ports. Probably double or triple the frequency if those displays were connected to a full docking station - probably something odd in PCIe code, potentially even firmware level.
The only OS I haven't had kernel panics on in recent memory is, indeed, Windows starting with 7, but I have a long list of other reasons I can't/don't/won't use it as my daily driver.
I had almost as many kernel panics on a 2016 Macbook Pro over a bit over a year of using it
I'm still rocking my 2012 Macbook Pro. It's been solid.
The only OS I haven't had kernel panics on in recent memory is, indeed, Windows starting with 7, but I have a long list of other reasons I can't/don't/won't use it as my daily driver.
I can only stand to do my development on a windows machine by using a Linux VM.
This hasn't been an area where Linux has had problems for more than 5 years.
Really? Because I definitely got the impression it was a widespread joke in that circle of devs. Also, when I saw it happen to the last poor sap, it happened on Bionic Beaver. Is this more of the Thermocline of Truth?
I think dual headed (integrated and discrete GPU) laptops using Wayland is still a problem for some people. I don't know why. I gave up on dual headed laptops a while ago and haven't had a problem with multiple displays using i915 graphics and Wayland.
In Linux's defense even the corporate issued Dell laptops at my work running Windows 10 struggle with projectors. I see it daily in meetings people have to randomly mash the function key until display gets mirrored to projector properly, need to plug / unplug projector repeatedly until it works. People hit fullscreen in powerpoint and projector display just disappears and have to go through plug in unplug again dance.
From everything I've seen a projector "just working" seems to be the exception rather than the rule.
From everything I've seen a projector "just working" seems to be the exception rather than the rule.
My experience with Macbooks has been excellent. Even Airplay over an Apple TV just does the right thing with presenter view in Keynote just working. The one time I had a rotten experience on a Macbook was when I had to use Zoom.
I honestly feel like I've seen this same comment on every Linux workstation post for years now.
And you know what? Its mostly true[1], but its also true for me in reverse.
Mac OS has definitely improved in the last few years... that being said, it's still got rough spots that Fedora 29 doesn't. For me, this would be just as true of a statement.
[1] Maybe not the part about "had to download[...]" which felt a bit biased.
Everyone has their own view of rough spots but those aren't mine.
The rough spots I'm experiencing with Linux are very specific. Namely lack of support for some proprietary VPN solutions like Junos Pulse for example.
Also lack of native clients for software like Webex Teams, forcing you to use their web apps which use up so much resources that I'm convinced they've caused my laptop to stall a couple of times.
And of course, perhaps related to the issue above, anything relating to graphics does need work.
The major positive thing I can say about using Linux daily in work and personal life is that it works so well that when it fails you get very annoyed. That's a good sign. It means that it's rare enough to annoy me. If it was too common I wouldn't be surprised when it fails.
I also switched back from Mac to Linux, 2 years ago.
But I use vanilla Gnome 3 on Fedora. Before Mac I used tiling window managers but now I don't see the point. It's just so much configuration to handle which Gnome does without a single line of config or shell code.
Ubuntu and openSUSE are my main installs, and they usually feel fine, my only issue is always drivers, whether it's Wi-Fi or Graphics (worse one, since at least Wi-Fi I have ways to circumvent - buy a compatible wireless usb tiny adapter for example, or connect a router to the network and connect my device over LAN). If somebody could either make a properly open GPU or get AMD or Nvidia to release proper drivers that don't break between versions, I'd be happy. Nvidias drivers used to work on my one laptop, now they've broken something in the latest incarnation of the driver, that or it's just not compatible with Ubuntu's new X.org alternative, whatever the case, it seems too easily fragile. If I can't install it due to GPU issues, I move on if I can't find a compatible distro usually.
As for the font thing, maybe I'm not a fontphile or something, but they're usually fine for me.
The 9370 is an even more fun can of worms - resuming from suspend will almost always work (I remember the 9350 having massive problems with this, it's not just you - I ended up selling that rig to a friend), but there's a decent chance I'll kernel panic upon plugging in my Type-C dock after said resume.
The Killer Wi-Fi card has none of the connectivity problems I read about almost everywhere for this model.... but has all the throughput problems, running at about 15% of the throughput/bandwidth of my Chromebook (an Intel AC card) sitting right next to it as of the last time I tested.
I'd definitely not call Linux consistent, but it's better than it was when I started using it back in 2006-2007ish, and I wouldn't trade it for any other setup (and it's not for a lack of trying: my primary work machine for 2.5ish of the last 6 years was a Macbook Pro of some sort for one reason or another)
I've also found that on my XPS 13 with 18.10. Was fine previously on 16.04. Now I have to open and shut the lid a few times to get it to stop flickering. It's annoying and would otherwise be perfect.
Ah yes that. That’s an (old) bug about how logind interacts with gdm. A quick workaround is ctrl-alt-fn-F1 to force the screen to lock itself. Makes the flicker go away.
For me, Linux has improved a lot because Windows has gotten a lot worst, but the Linux distributions I've used have not improved that much (mainly Fedora and Ubuntu). I've been using Linux exclusively for many years and will probably continue to do so though...
I fell "in love" with the Budgie desktop experience, which is a project of Solus Linux. However, I didn't like the Solus Linux package system; I wanted the Debian plethora of packages. So I "found" Budgie Ubuntu. Best of both worlds, IMHO. It's the closest I've gotten to a Mac on Linux. It still has some rough edges, but nothing that really sticks out for day-to-day work and play.
If anything, font rendering in Linux is much better than in OSX. It does way more advanced auto-hinting and LCD-subpixel rendering, supports the newest font standards for things like advanced layouts, colored fonts and emojis, etc. etc. There's also very little display fragmentation other than the choice between Xorg and Wayland, which are largely complementary so far. But you can already be on Wayland-only in many cases.
>Inb4 the anecdotal "well it works for me I just had to download the xf86 font library and compile with a legacy glibc version..." crew comes in with a thousand and one rebuttals. Problems like that are still a suboptimal user experience, no matter how you slice it.
No, my experience is much more along the lines of, "I download and install Ubuntu or Linux Mint, and then it works without further issues."
I put Ubuntu Mate on an old 2009 Macbook because it couldn't function with MacOs anymore. A wifi driver was the only thing it needed. Which, ended up being trivial to install. Everything else worked out of the box. Two finger gestures on the trackpad, audio, everything.
My current Dell Inspiron 7000 didn't need a single driver installed manually (with Ubuntu). Pretty impressive.
Font rendering is a funny one. Some distros were limited by patent issues, but Ubuntu has looked great for a while. Now Apple removed subpixel anti-aliasing in 10.14. This may look better on hidpi, but lots of us still have non-retina Macs
> Font rendering, display/compositor fragmentation etc...
So take a user from Windows 10 or OSX whatever, and sit them in front of your favorite stable Linux distro running a terminal emulator and a browser of your choice.
Are the fonts going to be rendered in a way that is unobtrusive for those users, or will things look ugly and difficult to read?
Because I'm running a chroot of Debian Buster on my Chromebook and boy, that terminal sure does look blurry. (And is this a bug that will be fixed when Buster stabilizes, or am I expected to go read some font wiki on a different machine to "guess-and-check" it back to sanity?)
I don't want to switch to OSX. But I also understand why someone wouldn't trust the UX of a system that ships in "headache-mode" by default.
Anecdotal like other comments but I and a few others from my workplace have switched to Dell XPS machines and run Linux now, and it's because we're working with Docker, even with 16GB RAM and solid-state drives, the performance of Docker on MacOS is pathetic, and entirely unusable for our work.
The XPS machines we have are ugly, they're flimsy, they have a grotesque carbon-fibre pattern on them, the keys leave imprints on the monitor after the lid has been closed, the fan drowns out the sound of music in my apartment, the camera is situated about 5mm above the keyboard with it's rickety keys, it is without a doubt the ugliest, the worst computer I have owned, I eat tramadol just to handle the back-pain from carrying it around in my rucksack, but I'm much less angry and frustrated working on it than I am on a Mac because it doesn't shit it's pants when more than a few containers are running.
I started using X1 Carbon 6th recently and it's an amazing little machine. Extremely portable (a 14" that weighs 2.5 lbs and fits in a 13" sleeve), great keyboard, great Linux support, good display, and it runs very cool (the fan is never on, despite running multiple virtualbox instances in addition to regular work that causes sporadic CPU spikes - e.g. compiling).
It's also very pleasant to touch and hold in your hands, especially if you like the Thinkpad aesthetics.
I have to agree. I was never a big fan of laptops before, but I've really come to enjoy my 6th gen X1. The keyboard is surprisingly nice (for a laptop) and the battery lasts long enough to not annoy me when I'm on the move.
The fingerprint reader doesn't work though, not that I know what I would use one for.
I installed KDE Neon on a t450s recently and the fingerprint reader was the only hardware that didn’t work out of the box. I had to install an extra package and add some lines to a pam config file.
I use it to log in, plus to auth for anything that requires root. I’m doing some coding so occasionally do something that requires sudo in a terminal. A prompt appears and asks me to swipe my finger. It’s very neat.
Counter-anecdote (I admit that I'm ignorant about aesthetics, so I'm not addressing those points).
I got a personal 2016 XPS 13 (9350) because of Project Sputnik (https://bartongeorge.io/tag/project-sputnik/), which brought official desktop-Linux support to it. I also work at Google where we have a very solid desktop distribution, providing me a working example of almost every tweak I might want to make. Owning the hardware has been a great experience since two changes. First, I swapped out the Killer wifi card and replaced it with an Intel card. Unfortunately this is table stakes for any machine with that card. Second, I thought the spring on the keyboard's keys was much stronger than another XPS 13 that I'd test-driven, so I rolled the dice on eBay and bought a replacement for something like $20. I swapped it in, and it indeed restored the light touch that I liked about the other one. I wouldn't expect many people to do this.
As for software, I've settled successfully on Ubuntu 18.04 LTS, running the same Cinnamon desktop environment we use at work. A key part of my success has been committing to Ansible for configuration management. When I make a settings change I want to keep, I figure out where it's persisted, and then upstream it into my Ansible repo. This has the three-part benefit of teaching me a little about the system (mostly dconf), creating a worklog of changes I've made to the machine, and giving me the psychological comfort that if things get really bad, I can reinstall the OS plus all my tweaks. (Just to be clear, these aren't
I've since expanded the Ansible setup to manage a tiny target-practice server I keep on a cloud service, and over the holiday break this year I successfully set up an old desktop in a closet by (1) installing base Ubuntu, (2) unzipping my Ansible repo to it, (3) running a bootstrap script in the repo that installs python, git, and ansible, and runs Ansible on itself, and then (4) drinking a cup of coffee. By the end I had a machine that was substantially identical to my XPS 13.
I'm sure I'm proving someone's point that Linux isn't ready for the desktop. But from my perspective, the Linux-hardware interface is excellent on a Dell XPS 13 because of Project Sputnik, and if you can factor out the likely dozens of hours I spent overengineering my personal Ansible configuration system, I now have a reliable, easily reproducible desktop setup that rivals the manageability of a Chromebook, which is my personal gold standard for desktop statelessness.
oops, I meant to delete my needless clarification "(Just to be clear, these aren't..." but must have sent it anyway. All I was trying to say was that these tweaks are user preferences like background images, not essential things to make the machine usable. Thanks to Sputnik and the wifi card swap, the machine was usable from the start.
Our development environment has been with docker on Mac for a few years. It's definitely slow, but we found it acceptable. Do you happen to use a very large image with tons of IO work?
Have you tried running Linux on a MacBook? This used to be pretty well supported (albeit expensive) way of getting pretty hardware and the software you needed, but I haven’t tried in a while.
For folks considering the XPS, check out the Dell Inspiron 7000 range. I have the 13" version and it very much reminds me of a MacBook Pro aesthetically. Brushed aluminum chasis, dark keys (with back lighting), and an overall sleek, understated design. Nothing like the cheap, plastic Dell's I was used to seeing.
And, it installed Ubuntu (mate) without a hitch. Everything worked out of the box except the font scaling. I suspect that's a Mate specific problem though. Gnome may work better.
It seems to me there is always an "except" with Linux. Even someone, elsewhere in this thread, said the developer edition of the XPS worked flawlessly, "except..." -- and that is a laptop that comes preinstalled with Linux!
> the keys leave imprints on the monitor after the lid has been closed
Same with my Late 2013 MacBook Pro.
> the keyboard with it's rickety keys
I haven't used the XPS keyboards extensively but they seem to get good reviews and in my limited experience, I definitely prefer them to the new MacBook keyboards (which I've used quite a bit).
> I eat tramadol just to handle the back-pain from carrying it around in my rucksack
The XPS 13 is actually lighter than the MacBook Pro 13 and the new MacBook Air. The XPS 15 is half a pound heavier than the MacBook Pro 15, which should be barely noticeable when carried in a backpack. I am not quite following.
Funny, I have an XPS13 (9370) and I love the aesthetic; the carbon fiber and metal look/feel is really nice. It's light, works well, and is quiet. The keyboard leaving imprints on the display is no different from my 2013 MBP, whose design everyone still seems to love.
I use a Dell Latitude at work. It's far worse than the XPS I've sampled in shops. The keyboard is the worst thing I've used since the ZX81 and Spectrum. Possibly worse but my memory may fail me.
There are different issues with OSX though, that colleagues of mine had, that never occur with Linux. E.g. the chore of somehow managing different software versions such as the outdated default one and a second one installed with homebrew. Almost all my colleagues struggled with setting up python 2 und 3 correctly at some point, whereas this just worked for me on Linux.
Some struggled with font rendering between a 1080p monitor and their Retina displays as well.
Languages and platforms generally are best supported on linux. Clojure, haskell, python, anything except the platform provided by the Apple/Microsoft is easier to configure on linux.
C++ ecosystem sucks a lot when you have to build 5 libraries using 5 different building systems. Linux package managers do that for you.
Yet VC++ offers much better tooling, including pre-compiled headers, incremental compilation and linking, experimental support for modules, C++ friendly OS APIs, and a package manager actually written in C++.
And a project config system that will break everything at the slightest provocation! Seriously, setting up even moderately complicated multi-project solutions usually results in days lost to figuring out why x library isn't linking with y project. The editor is great, the build system is somehow worse than make/cmake.
> However, the Python ecosystem isn't doing anyone any favors here.
Apple isn't, either. They ship a version of Python by default that is woefully out of date and conflicts with any other Python that you install, and what's more, some of their tools (notably, LLDB) freak out if you have a newer Python on your $PATH.
I have struggled occasionally with the various Linux package managers not being able to resolve Python library conflicts/dependency conflicts. Like, really, things where you wonder how possibly could there be a conflict, such as scipy not being able to update because matplotlib ver whatever being needed by some other lib that interoperates with scipy but itself is updatable something something something.
I'm still not sure I know the best way to install Python packages. It seems someone has something bad to say about any given method (pkg mgr, pip, venv, etc).
I just use nix on OS X, better package manager than most linux distros have. I have my own copies of py2/3 and the system one, not a huge deal to be honest (outside of the pain of linux side nixos updates breaking derivations for macOS, but thats generally not a fault of the os).
Last time I tried Nix I eventually got the Nix environment working, but ran into MacOS-specific issues trying to install relatively common development-related packages like Ruby and PostgreSQL.
It's waaaay better than it used to be. A couple of years ago there were a lot of impurities which would cause everything to break whenever macOS was updated. But these days it just uses libSystem from macOS and the rest is managed by nixpkgs.
This is at least as bad a problem on Linux — I would argue worse since I've seen people break the system tools written in Python — and it's mostly due to Python being old enough to be both widespread and to have accumulated tons of easily-googled bad advice. The people who have problems with this almost always also have tons of similar problems with everything else because they've avoided learning enough system administration to work cleanly or troubleshoot problems effectively, and that's unfortunately cross-platform — they'll also do things like copy DLLs into Windows system folders, get annoyed that rpm/dpkg won't let them install the wrong version of an important library, etc.
The main thing is understanding that the system python installation should be left alone and you should install each app/project in a separate virtualenv / venv so their versions of Python & installed packages are isolated from the system and each other. This also tends to get rid of about 99% of the times where someone try "sudo <previous command>" before reading the error message.
These days I tend to recommend using https://pipenv.readthedocs.io/ or https://poetry.eustace.io/ which will automate creation of those virtual environments and provide a nice interface for managing versioned package installs (i.e. `pipenv install foobar` will record the exact version you installed, including SHA-256 hashes, for repeatable installs).
If you're in the Red Hat world, note also that they're making some big (and I think welcome) changes to isolate the Python they use from the version developers use, which will also allow tracking newer versions faster:
I was looking at venv, but I guess not fully looking through into deployment. Do you know if venv works with setup.py bdist_rpm or is there nothing standard linking the two concepts?
To be blunt, Apple would be better served removing any and all of the outdated packages, not even bothering to include certain packages at all, and just telling people to use one of the several community supported package managers. The GNU packages especially come to mind since they are all out of date anyway.
If there’s no requirement from some OS feature to have a particular package preinstalled, I would rather not even have it in the base system if I’m just going to have to replace it with an updated (and updateable) version.
I might be unlucky but Linux had been a nightmare on the few laptops I've tried it on. It is not that I have not tried. I did. Some of the problems I had: Very slow UI, not recognizing my Wifi Card, Chrome stopping support for CentOS, Problems with the Graphic Card and multiple monitors, problems with most printers I try, problem with my Bluetooth mouse...
Linux and the multiple variants have been horrible. Also, you commented about Python 2-3, I agree I had issues with OS X. But you are ignoring the fact that installing software on Linux is still a mess of resolving all the dependencies and the package manager. Where in OS X, it is just a file move to App.
Nowadays, I run dev code on a Linux docker container. I do pretty much anything else on OS X.
Your experience running Linux on a laptop is highly dependent on how well it supports the hardware that happens to be in your device. If you're able to research the driver support ahead of time, you may find that Linux runs flawlessly on the laptop you bought. If you install Linux on a random laptop, then getting wifi, audio, etc working can be hit or miss, depending on the drivers.
As far as installing apps, I guess it depends on what you're trying to install. In my experience installing apps is easier on Linux than on any proprietary OS, so long as you're installing open source applications and working within the package manager and keeping your system up to date. If you want to run proprietary software on your open source OS, then yeah it's more difficult since Linux distributions aren't really designed for it.
> Your experience running Linux on a laptop is highly dependent on how well it supports the hardware that happens to be in your device.
My second mainline Linux install was a copy of RedHat on a laptop.
Mind you, this was RedHat 5.1 on an old 486 laptop with 8 meg of RAM, PCMCIA, etc. Sometime in 1995 or 96, I forget.
Several re-compiles later, I had that entire system working - all drivers for all the hardware, including the built-in modem (plus sound and PCMCIA ethernet).
I had an Asus laptop that would only pickup wifi if I hibernated it first. I have a Dell touchscreen model that took a full day to get the touchpad to work at all as Ubuntu kept defaulting to the screen. Too afraid to do a fresh install of the current (or any other) distro because I can't remember how I fixed the touchpad issue.
It sounds like you were really unlucky. The last time I struggled with any of the issues mentioned by you is at least 4 or 5 years in the past.
> But you are ignoring the fact that installing software on Linux is still a mess of resolving all the dependencies and the package manager. Where in OS X, it is just a file move to App.
This is also highly dependent on specific experiences. I haven't had any issues with conflicting dependencies on Arch linux in the past few years. And personally I appreciate a system package manager for all software instead of having to download applications and doing drag and drop for installation
Sounds like you just got lucky with the versions you happened to need vs what the system versions were on your version/distro of Linux. It's not like Linux has a built-in solution to the problem, you can definitely still have issues with conflicting versions.
BTW, on either platform your best bet IMO is installing all your scripting languages within some kind of version manager. I like pyenv, rbenv, and nodenv since they work exactly the same way between the three languages.
I have a feeling that Apple doesn't want their users to install that kind of development environments, other runtimes, etc. to their MacOS installations. Time Machine also sometimes doesn't Backup these installations correctly.
Similarly, TeX installation is hard and it's forcefully shoehorned on the installation, and you can't do anything better in the current situation.
My solution is to run a Linux VM for these situations. For programming and server-like purposes, a headless minimal installation is fine. For TeX authoring, an XFCE installation is very handy and not impacting battery life in a visible way.
It was. When I got my first Mac in 2008, it was very straightforward. When Apple started to tighten OSX security they stumbled a little IIRC (I cannot find the old warnings and notes on the page). Also, around the same time, OSX installer changed, and OS upgrades started to take longer since TeX installation had so many files.
When they were working on these problems, I was in the middle of my Ph.D., and I needed a stable TeX installation, fast. I installed a Linux VM, all my woes went away, and that method just stuck.
I just checked the MacTeX page now, and it looks like they solved the problems I mentioned above, but currently I'm too lazy and need that TeX installation keep working, so I'll not retry it now.
To be fair, that may be a python problem, as I've also had issues with 2 & 3 on a Linux machine as well. At this point, unless I can avoid it I just use a VM for any python 2 work.
OSX comes with some software such as git and python2 preinstalled. However they do not usually keep that software up to date and there is no way for you to change that, which means that community package managers need to be used to install more up to date software versions in parallel to the system ones
This is a pain point. I use pyenv+pyenv-virtualenv+pyenv-implicit to keep me sane on MacOS (and everywhere else honestly, system python is for the system.)
This was my main complaint with OSX until I tried nix. When I ditched homebrew and reinstalled the same packages with nix, I don't think a single one had problems. The CLI has some stupid pitfalls though..
1. brew install pyenv
2. pyenv install 2.7.x
3. pyenv install 3.x
4. cd work; pyenv local 3.7.x (by default, all projects under "work" will use 3.x)
5. cd work/legacy; pyenv local 2.7.x (but this one will be on 2.x)
then for each project, I'll create a separate virtual environment.
For various reasons, I have about 6 separate python versions and a dozen or so mini projects all working flawlessly as separate virtual environments created under separate versions managed by pyenv, and I always have the latest pyenv thanks to brew.
I find the fetish for terminal-based music players a bit odd. I associate terminals with doing work, so the idea of having one whose sole purpose is playing music (presumably in the background while you do other stuff) to feel like a waste of screen real-estate and something I'm likely to accidentally pull up while trying to cycle between my other terminal windows where I'm doing stuff.
I much prefer something that I can kick off to play an album or a playlist and have it all but vanish from sight, either into the taskbar or, preferably, into the system tray.
With a tiling display manager like i3, dwm or awesome, system tray isn't that useful. You tends to have one app (or a group of app that you always use together) per virtual desktop that you access in one keyboard shortcut.
You never circle through apps as it's not necessary.
Most of the apps are in fullscreen or tiled depending on your need. No window is hiding another one.
When you're use to it, having to move your hand to the mouse or trackpad and click on stuff feels painful. Then keyboard driven apps (which terminal apps are usually really good at) makes total sense because you still don't want to have to move your hands and click in stuff.
Basically usability switches from graphical apps made for mouse/trackpad to keyboard driven. It's a quite different way to manages windows that have usually a learning curve as it is keyboard driven, but it's really efficient.
After using i3 for about 3-4 years, I have to admit that I'm always a bit lost on floating WMs now and feel like an idiot for a few minutes until I'm somewhat comfortable again.
To me tiling WMs are just vastly superior.
Anecdotally, most people I know that have seriously tried to use a tiling WM usually end up sticking with them.
Is this true for you on a laptop as well? I could imagine this on something where I had a lot of screen real estate. But when I'm coding, in one virtual desktop I'll typically have the IDE, a few terminal windows, and a couple of browsers going. With a 14" screen, I can't imagine how I'd make a tiling window manager work.
The great thing about i3 (and also other tiling WMs) is that they are very flexible and customizable to your preferred workflow.
Together with them being centered around the keyboard and easily scriptable, you can use them in a way that works best for your preferences and your environment.
For coding on my laptop, the active main workspace is split into three parts, with the editor taking the left half of the screen, and the right half split into browser and terminal (with the terminal being a TAB container with multiple terminals that I can quickly switch between).
When I need to focus on either the editor or the browser, I make them full screen (I have shortcuts to jump between full screen browser and full screen editor directly with one keystroke).
On other workspaces I have setups with music player, email, Jira/Bug tracker/etc that are always launched in the same configuration on boot and are also just a shortcut away.
So it works great on a laptop too, even if you spend a lot of time with one app maximized.
I felt like the kind of micro optimizations that a tiling window manager gives you aren’t worth it in the long run.
Sure, it felt like I was moving faster when I used keyboard shortcuts to fly around but at the end of the day, switching between windows was never a real bottleneck to begin with.
I switched to i3 because I was just frustrated with what I had used in the past. I wanted a simple window manager without animations (disabling them on my phone was also a huge gain in terms of usability), that just works and does not get in the way (I had a slow laptop on which Gnome was painfully slow, at the time). The cost was basically to write a configuration file matching what I wanted, learning a few key to switch workspaces and windows, but that was it.
I agree with you that these are micro-optimizations time-wise, but the frustration can be real and it gets in the way when you use your computer all day long. The simpler, the better I'd say (although it doesn't have to be a tiling window manager).
Most of us Linux users find you a bit odd. That's just how it goes.
The shell is a very useful interface. It allows abstractions that just aren't tractable with GUIs. Many of us have found that those abstractions are quite useful for fun things, too.
If you're using mpd the terminal interface can be opened/closed at will so you can just openit, queue up some music then quit. Exactly the workflow you're on about.
Exactly. It's especially nice since you can use the same UI to control different mpd servers - I have one running on my laptop and another on a machine plugged to my home stereo. And I can also control both from my phone using MPDroid.
I use cmus on the command line because it enables me to quickly slide over and really quickly adjust my playlist using only the keyboard. With a GUI player that would require much more steps.
The neat thing about terminal-based music players is that you can put them in tmux and not have them take up any screen real estate when you're not using them. :)
I like terminal based music players when I’m doing work exactly because the terminal already feels like work, so it doesn’t feel as much like Tidal or Bandcamp or SoundCloud are open in the background and something I could get distracted by. For keeping it out of sight, tmux or any terminal multiplexer is great at that.
There are multiple terminal-based Spotify players, with the caveat that you need a paid Spotify account to use them (because they're incapable of playing ads)
I find ncmpcpp (a terminal-based controller for the excellent mpd) great for being able to quickly and easily navigate through my music library and add/remove/edit tracks from playlists. Then I minimise it, and launch Cantata which I immediately minimize, and I thereafter just interact via the Cantata interface in the systemtray (or via kdeconnect on my phone), until I need to do something more involved than play/pause or switch tracks, and then I un-minimize ncmpcpp, quickly find new tracks or whatever, minimize it and so on and so forth.
I put my terminal based music player (cmus) in a Quake-style drop-down terminal (Yakuake). It's easy to access, doesn't add any clutter, works with ReplayGain, and it works with media keys.
That is how my setup works in the terminal. MPD (music player daemon) runs from the start in the background and I can start ncmpcpp in the terminal to choose a album/playlist and then I can close it again or leave it on a different workspace.
Play Pause etc. just work without the terminal. The biggest advantage in comparison most graphical players for me is that there is no startup time. If I want to play a song I can do so immediately and even without leaving the terminal I am currently working in.
I usually run 2 konsole windows with several tabs in them. One is for git, building, packaging, etc, and the other is for random tasks on the side, and in a second tab there is mplayer playing some internet radio.
It's less clutter IMHO. But i don't use tiling wm.
This works really well if you have excellent eyesight or if the screen is curved but so have to physically move sideways to see different windows with this size screen. It’s a good problem to have, of course!
mpd is the single best music player for what you're describing. You can choose how you want to interact with it. And if you can't find an implementation you like, the API is simple enough you can write something yourself.
Even better, you don't have to 'choose' - in the sense that you can simultaneously connect to mpd via different interfaces (in this same thread I mention how I use ncmpcpp for some things, and cantata for other things).
> Recently I’ve just found myself disenchanted with Apple in a way similar to how I felt maybe twelve years earlier with Microsoft, when I switched to Linux the first time.
This is exactly why I've been switching back to Linux everywhere, including laptops. Apple has done a pretty good job recreating the modern Windows experience.
Same thing happened to me. I chose a top-end Pixelbook that runs Debian in a container (termed "Crostini" on chromebooks). I've had some issues, but Crostini continues to improve with every chromeos release, and I really like the hardware.
I feel like I'd be much more open to Linux if I spent most of my time in emacs, but since I've spent like 8 minutes in emacs and about 14hrs in vim and have very little desire to increase either of those numbers, it only takes a small dose of Linux to re-enchant myself with Apple.
I run arch with gnome 3, chromium (+chrome), and vs code as my main dev machine.
No emacs or vim required. No text only interfaces. No terminals unless you open it yourself (In which case it's running powerline with git addons and is still a very nice visual experience)
Gnome 3 with dash to dock is basically a drop in replacement for the osx style desktop. It just works.
Better yet, I'm free to get a better-than-osx experience on any hardware I want (and I REALLY don't want to the new macbook pros - I'm stuck on one at work and it's... bad).
Between work, gaming, personal projects - I'm running osx, win 10, and Arch. They all stay synched with dropbox and google drive. I get unix style terminals/shell everywhere (cmder/conemu for win10), and life is generally lovely.
Of the three, I prefer Arch, then Win 10. Osx is last by a mile. I think apple has a flakey os, and their hardware is rapidly moving in a direction that doesn't suite professional needs.
One can certainly use Linux set up in such a way as to be very similar to a Mac experience. (ElementaryOS seems to me intentionally be Mac-like, for instance. But plenty of other distros are also set up in such a way that the user doesn't have to ever open a terminal if they don't want to.)
There's no rule that you ever have to open either emacs or vim on Linux (though, personally I think you're missing out if you've only spent 8 minutes in emacs, but that's beside the point). In fact, you can just not install either emacs or vim, and thus make certain you don't ever open them by accident.
I recently updated my Linux desktop at home; I tried a variety of live distros - I don't recall if Elementary was one of them - it might have been in there.
The one I ended up using had the Budgie desktop, which I found to be the most "Mac-like" of all the experiences. The distro I used was Ubuntu Budgie, because I wanted the Debian and Ubuntu software ecosystem, but Budgie is a part of the Solus Linux project (which I enjoyed when I tried it, but I didn't like the package system).
So give Solus and/or Ubuntu Budgie a try on a live USB thumbdrive sometime; you might enjoy it, if you are looking for a "more Mac-like" experience...
I'm not about to tell people which platforms they should run - each to their own and all that - but I do feel it's worth mentioning there's no need to use emacs nor vim on Linux if you didn't want to.
and on the flip-side to that, the versions available for Windows and Mac are both perfectly serviceable so you may still run the risk of being confronted with them even if you don't switch!
It seems like there is a mindset in people I've run across that makes them especially willing to use Linux and also emacs (vim to a lesser extent, and other command line programs. I mentioned emacs because that's what the guy jumps to in the article). More of their interaction with their computer takes place inside their head whereas I need the computer to represent things more visually. And since emacs (and vim) work on lots of OSes, they can jump right in on any of them and feel at home, while I feel like I'm trying to eat with chopsticks while wearing boxing gloves.
Well, some of us love programming, so I'm not surprised if we're in editors all day, others might be maintainers of open source / Linux projects. But there's a huge amount of users who use it like they would Mac or Windows, I am one of them, I also use both OS' I overall prefer Linux for some things since it puts me in the heart of the platform I would normally deploy production code to and it just feels right, something about being able to take apart any part of my OS feels awesome and hacker friendly, even if I never take it all apart, I know I can.
Same reason I keep Android around, now someone will say it's proprietary blah blah, but I can root my phone and install anything I want on it.
Since I've used Linux there was always a Linux gaming community for example, doubt they spend centuries on VIM or Emacs. Also remembering all the crazy Desktop Environment eye candy from the 2000's like the desktop cube, and the self-incinerating window when you'd close it. Linux just made you feel so damn cool at the fact you could have things that just did all these insanely awesome things!
I recently switcher from a Lemur to the new MB pro. I'm a vim user so whenever I code I use an external keyboard that has function keys. I seriously miss my i3 setup and my MB in particular had hardware problems (overheating, video card issues). What I didn't like about the Lemur was the battery (life, didn't hold charge for too long), the screen and the touch pad. For anyone that used Librem, how's the battery and touchpad ?
I long for the Linux prairies of old, but I've grown fat and lazy on OSX. Linux is a youngster's game.
Apple got it wrong in 2016 but there are signs that we might have passed "iPhone peak"... maybe they will be forced to pay attention again to us old farts.
Yeah, I loved linux but I'm fat and lazy on OSX. I don't want to be sucked into the rabbit hole of being able to configure and tweak everything, and never quite feeling like I found the greenest pastures.
I've installed Ubuntu 18.10 on my Dell laptop, and I've done no configuring/tweaking that you describe. Just the default install, changed maybe one or two settings in ubuntu's version of "System Preferences", installed my Firefox extensions, changed the desktop background. You don't need to do any configuring/tweaking if you don't want to. Everything works.
Turns out that fat/lazy also applies to Linux. Meaning I used to also try to optimize the heck out of my linux install. Went back to Linux from OSX last year, and was perfectly fine adjusting my workflow to suit my new machine, rather than trying to make my machine suit my ideal workflow.
What this means is that I installed a base ubuntu system with awesomewm and just used it mostly stock. I already had awesomewm experience from 5+ years prior, but for the first month of moving back to Linux I was also perfectly happy chugging along with gnome.
What I am saying is give it a try. Only time I miss OSX now is when I need to sign a PDF.
> I long for the Linux prairies of old, but I've grown fat and lazy on OSX. Linux is a youngster's game.
45 years old here and still rocking Linux (does that qualify as "old" - probably - sigh). Started playing with it in 1995 (MonkeyLinux on DOS!); haven't stopped.
Stuff's gotten dirt-simple compared to what I remember having to do in the past. Certainly no kernel recompiles needed any longer (but if you really wanted to, you can do them).
Have I gotten "fat and lazy"? Yep - just on Linux. I can't see that changing in the future, either...
Is Linux that popular with youngsters after they've left university? When I think about laptop Linux users it's the archetypical greasy bearded GNU'er [1] that springs to mind...
I so wish the Linux community would get its act together and implement a working usable clipboard. It's the one thing I miss the most whenever I switch from Mac OS to Linux.
On a Mac, you can cut/copy/paste using predictable keystrokes in any application, anywhere. And there is a single clipboard. On Linux, you have to deal with a multitude of behaviors (middle mouse button, Ctrl-C, others, and does it paste where the cursor is or do you have to click the middle mouse button exactly where you want stuff pasted, etc).
And I'm not even talking about multiple media types: all I need is plaintext.
The second dream wish would be for consistent keybindings in all text input boxes, like in Mac OS. Such as make Ctrl-A always go to the beginning of line, Ctrl-E always to the end, and Ctrl-K always kill whatever is in there.
If I had that, I think I could use Linux without getting annoyed every couple of minutes. I would still miss apps like TextExpander, flawless drag&drop, and lots of other things, but I could at least use it without frustration.
Unfortunately, none of this is likely to happen. If you wonder why, it's enough to look at the responses that will surely land here:
It won't happen because Linux users like it the way it is. It is consistent, it's just not the way you want it to be. I love middle click paste. It makes sense that it doesn't follow the text cursor because the mouse is separate and this adds extra flexibility. Ctrl+A should select everything and put the cursor at the end.
Actually, in some apps the cursor disappears and in some the cursor goes to the end, but the behavior of what happens when text is selected is always the same.
X's copy/paste behavior was meant to be used in conjunction with the secondary selection which is seldom used these days as most modern toolkits don't expose support for it.
This already exists in desktop environments. Of course, not all desktop environments have the same features. I know KDE Plasma has this. It can't work with all apps though, for the same reasons that MacOS and Windows can't have a feature like this that works with all apps. That is, unless you want to translate keystrokes into other keystrokes on a per app basis.
A way to insert X11's "clipboard" buffer (i.e text that is currently selected text).
I agree with GP: I find the two separate copy-paste methods very useful and wouldn't want to see them merged. Users who aren't aware of one of the aren't affected, and those who are get an extra buffer to use.
Clicking with the middle mouse button - nowadays, it's typically a clickable scroll-wheel, but it used to be a plain button between left and right mouse buttons back in the day.
After mice had mostly standardized on two buttons but scroll wheels didn't exist yet, it was common to map a simultaneous click of both mouse buttons to simulate a middle click.
Just as a nitpick: communities can (almost) never "get its act together", as they are comprised of people with different preferences who do not want to abandon their preferences for some abstract common good.
On a more substantive note (globally consistent actions from keystrokes). It would be great, but not going to happen because there are established modes where the same keystrokes lead to well known results. And those actions are different depending on the application. Maybe it would be good if this was not the case, but that ship has sailed a long time ago. MacOS is in sync because its BDFL (Apple) forces it to.
Example: Ctrl-Z. In a terminal, it suspends a process. In most GUI editors it performs undo. Shall we force a global standard? I would pay to watch a user get its editor suspended when he presses Ctrl-Z to undo a typo. Did the program crash? Let me start it again ... what does it mean it is already running?? Where are my edits??? I'll just reboot the machine!
So agreed, global synchronizations that would force this to happen are unlikely. Fortunately. My 2c.
> Just as a nitpick: communities can (almost) never "get its act together", as they are comprised of people with different preferences who do not want to abandon their preferences for some abstract common good.
That seems to be a defining characteristic of Linux communities, anyway. Not sure how you can say "all" communities are like that.
> Example: Ctrl-Z. In a terminal, it suspends a process. In most GUI editors it performs undo. Shall we force a global standard?
Haiku uses Alt instead of Ctrl for shortcuts (similar to macOS and the Cmd key), so Alt+Z does undo and Ctrl+Z suspends a process, both in the Terminal. (If you want to use Windows-style keybindings, then it's the reverse, of course.)
There's also complication that there's more than one standard. It's the same reason that emacs doesn't use conventional shortcuts even when it's running in a GUI: it's been using its current conventions since before the invention of the conventions that are now more popular. Similarly, if we just want to go by "preexisting standards" then really it's those newfangled applications that have hijacked ctrl-z to do anything other than suspending a process that are to blame.
> it's those newfangled applications that have hijacked ctrl-z
Yes. Windows botched this by hijacking the Control key, and the desktop-Linux crowd are unable to do anything but imitate Windows. Pre-Linux GUIs didn't have this problem, and MacOS doesn't have this problem.
How hard would it be to adapt a linux distro to have separate keys for control/command (a la MacOS). This is my single biggest blocker against using Linux as my daily driver - not having consistent keybaord shortcuts that avoid collision with terminal interrupts.
I think a KDE-based system could do it with modest effort. There's a flag deep in QT somewhere, enabled on Mac builds, that makes all the ‘Ctrl’ shortcuts default to ‘Command’ instead, and it would go a long way if that were a user-selectable option.
Actually, one thing which drives me to distraction is Emacs making C-Z a shortcut for minimising the window when using the GUI version. It's not a shell!!
It certainly makes sense when running inside a terminal. But when it's an X11 application, it makes me angry everytime I fumble C-X and it interrupts my workflow.
If you pretend that the "middle mouse button" clipboard doesn't exist (it is a feature that many are not even aware of) you then using the the regular one instead is a piece of cake. In Linux, all applications use Ctrl+C and Ctrl+V. The exception is inside the terminal, where you need to use Ctrl+Shift+C and Ctrl+Shift+V (due Ctrl+C already having a meaning there).
I spend somewhere around 30% of the time in a terminal, and the remainder outside of it. I am a former mac user, and after a year and a half the Ctrl+Shift+C thing still drives me mad.
Shortcuts are just better on the OSX side of the fence (not perfect, but way better). IMHO, global actions (copy, paste, select all, cut, undo, redo, etc.) should be mapped to one modifier (say AltGr) and local actions to another (say Ctrl). The most important part of this scheme would be that "global modifier + key" has an unsurprising result that is consistent system-wide. Then "local modifier + something, or modifier1 + modifier2 + something" can do whatever the app wants. This would improve things immensely IMHO...
I don't know about others, but with terminator[0] I'm able to map Ctrl+C to copy - but if nothing is selected, then ^C works as normal. Is that what you're looking for?
In GNOME Terminal you can go to the keyboard shortcut settings and rebind ctrl+C to copy and ctrl+V to paste. If you do so, then you can use Ctrl+Shift+C and Ctrl+Shift+V to do ^C and ^V. Not quite that "selection aware" behavior, but close enough.
From the terminal's point of view, Ctrl+C and Ctrl+Shift+C do the same thing. The only reason you can't usually use Ctrl+Shift+C is that by default that combination is intercepted by gnome-terminal to mean "copy".
(I wouldn't be surprised if other emulators with configurable keyboard shortcuts let you do a similar thing).
If we made Linux more similar to Mac like that then we would alienate everyone else who grew up used to Windows-style Ctrl+C shortcuts (which traces its origins back to the original Xerox PARC GUIs).
(If the terminal's Ctrl+Shift+C really bothers you, many terminal emulators allow you to rebind it to Ctrl+C)
On MacOS the keybindings are configurable via DefaultKeyBindings.dict file. Emacs by default, but I use Vim like key maps. Most important, these settings propagate to all 3rd party apps that use the built-in text UI components. You simply need to restart the app, not the whole system. It’s very powerful.
There are clipboard applications which will pull everything into a single clipboard. KDE Plasma, for instance, has a great built-in clipboard which does this and which also handles at least images as well.
> The second dream wish would be for consistent keybindings in all text input boxes, like in Mac OS. Such as make Ctrl-A always go to the beginning of line, Ctrl-E always to the end, and Ctrl-K always kill whatever is in there.
For this, you should really just run Emacs. But this isn't a Linux issue really, but a more general 'problem' of competing conventions (Emacs, vi, CUA, etc.) for keyboard shortcuts.
The issue is that on a Mac, the conventions work in (almost) any app, in any text entry area, and it's frustrating to not have that work. For example, Excel violates this convention for formula editing, and it's really grating to edit using only left, right and backspace. Probably MS has their own conventions, but I don't use Excel enough to learn them. Command line apps and things like MacVim are obviously a different story.
The controls are actually a little strange, because they aren't well documented or discoverable, and don't seem to be configurable, unlike most other shortcuts.
I do agree that it's frustrating not to have this functionality everywhere. (One minor trick to make some of it a little less painful is that in CUA mode [i.e. MS mode], for Control-A, Control-E, you can type Control-A (=select all) and then Left to jump to the left edge, and Control-A and then Right to jump to the right of a text box).
It's a NEXTSTEP legacy. Any MacOS application that uses the standard UI text field classes (NSText, NSTextView, etc) will get the emacs-like key shortcut behaviors.
The NS prefix on those classes means "NEXTSTEP"
Microsoft Office probably implements its own text box classes so it's different.
> I so wish the Linux community would get its act together and implement a....
The Linux communities are full of volunteers. It seems like their act is actually quite together! There is no 'buyer' to make demands with their dollar. Only there is a developer who one day decides they want a feature.
> I so wish the Linux community would get its act together and
Be the change you want to see in the world. Open source developers are volunteers scratching their own itches, working on their own time. I wish someone would come build me a house for free too, and if they did I'd be hard pressed to complain about the number of windows.
But you might be inclined to complain about the leaking roof, the Escher-esq plumbing, or that the appliances only come in diy-kits with half the parts missing.
The thing about Linux is, there's all these evangelists out there who insist that everyone should use Linux (or that they are superior to you for doing so) and, when you tell them why you don't, insisting your preferences are wrong, your workflow is wrong, it works for them so you're a liar, or you should fix it yourself.
If it weren't for those people, I think the attitude towards Linux would be more like it is towards Haiku. No one really complains about it, they just don't use it.
Oh, don't even get me started on keybindings. There isn't even a good way of setting them up anymore, because there are multiple layers and systems that deal with keyboard events. It used to be that you could get reasonably far with xmodmap, but that is no longer true. And good luck trying to get expansion functionality (e.g. a keystroke that generates several keystrokes).
Also, some context before I get flamed for being a newbie: I've used Linux since before 1.0 (that's 1993). My usual working keyboard setup pretty much requires a Super key and a Hyper is quite helpful, too.
Description:
Autocutsel tracks changes in the server's cutbuffer and CLIPBOARD
selection. When the CLIPBOARD is changed, it updates the cutbuffer.
When the cutbuffer is changed, it owns the CLIPBOARD selection. The
cutbuffer and CLIPBOARD selection are always synchronized.
With this, I can highlight text (which is an implicit "copy") or use CTRL-C and paste with middle-click or CTRL-V (or in emacs, CTRL-Y) and it all works.
The only weirdness is in Google Docs, which seems to hijack CTRL-C, CTRL-V, etc. for its own handling.
I swap left Alt and left Ctrl because my ancient "Mac" muscle memory expects a Control key and Command key in those places. I actually swapped the physical keys on the PC keyboard as well.
alias x='/usr/bin/setxkbmap -option ctrl:swap_lalt_lctl'
That makes most Linux software consistent with Mac Command keys. I still need to use Alt-Tab where I expect Command-Tab (control-tab) to switch to the next Application window because Autokey doesn't seem to be able to override this.
I installed Autokey and have keys assigned for Terminal. So for instance: pressing <alt>+c sends a <ctrl>+c, and pressing <ctrl>+c sends <shift>+<ctrl>+c. I have pretty much all of the alt keys assigned to send control keys, and all of Command keys (control keys) to do what I expect: Close ^w, Copy ^c, Find Next ^g, Find ^f, New ^n, Paste ^v, Select All ^a.
> On a Mac, you can cut/copy/paste using predictable keystrokes in any application, anywhere
Interesting, because Linux is my daily driver, and when I borrow my spouse's MacBook one of the things I get tripped up on is some programs seem to use Ctrl+C/V and other programs use Command+C/V for copying/pasting
All Mac apps use the Command (⌘) key for copy/paste.
I've never encountered an app that uses Ctrl. A developer would really have to go out of their way to accomplish this in their app, since the copy/paste menus are provided by Cocoa; the keyboard shortcuts are essentially built into the OS.
Actually I was misremembering. I was thinking of the Terminal app and having to use Ctrl+A/E to go to beginning/end of line. But jumping words uses Alt+arrow keys. And copy/paste is Cmd+C/V. I find the mixing of the modifier keys really unintuitive as a Mac noob.
But at this point the situation is the same as on linux. I've never encountered anything on linux that didn't use ctrl-c for copy other than terminal apps.
The situation on macOS is that you can copy text from Terminal the same way you copy text from Safari. You can edit text in iTunes the same way you edit text in your shell.
Sure. So each platform has different exceptions, but my point was they both have exceptions. The terminal is an exception on linux, but not on macOS. Other apps are apparently exceptions on MacOS, but those same ones probably aren't exceptions on Linux. The exact apps are different but the overall situation is the same.
Interesting, I don't know a single program on OS X which supports Ctrl+C/V for copy&paste but does not support Command+C/V (indeed, I know only a tiny set of programs that support Ctrl-C/V at all, mostly cross platform software that is badly adapted to OS X).
Out of curiosity, could you name an example or two?
Actually I was misremembering. I was thinking of the Terminal app and having to use Ctrl+A/E to go to beginning/end of line. But jumping words uses Alt+arrow keys. And copy/paste is Cmd+C/V. I find the mixing of the modifier keys really unintuitive as a Mac noob.
One example I’ve found is the trading software for Interactive Brokers. It’s a Java application with mostly custom (and fairly clunky) UI, and it has other Windows-isms like adding an icon to the desktop when you install it.
I've only see this in parallels when using a windows application.
So if you have windows office because it has traditionally been better than the one offered to mac you'd have to remember to use control instead of command.
Just double checked — neither iTerm not Terminal allow the Ctrl modifier for clipboard operations. In fact, terminal applications are _precisely_ the applications I use to argue that Cmd-X/C/V is overall nicer, as they don't interfere with the usual meaning of the Ctrl modifier as a way to produce control characters (which are especially useful in the context of a terminal)
Hm, perhaps you're right, it was some time ago I used a Mac, sorry for the confusion. There was something with Emacs also which was weird on the mac with modifier keys but I don't exactly remember what.
Ctrl would be an artifact of a port from another platform because Ctrl is closer to a Meta key on a Mac (Option is closest to Alt from a PC though). Command is the generally accepted one though. I can’t think of anything that uses Ctrl-based stuff on a Mac besides possibly IntelliJ and that’s only with PC compatibility keybinds enabled.
middle button paste works almost everywhere, apart from when webdevs do clever things.
as for consistent keybindings, I feel you on that. However your example is a bit flawed. home/end keys do what you want, and ctrl left/right does word skipping.
I used to be irritated by middle-click paste as well. That stopped when I had someone explain it to me as follows:
> It’s just another clipboard. One clipboard is interfaced via the keyboard. One clipboard is interfaced via the mouse.
Perhaps that’s common knowledge, but that understanding made me instantly fall in love with middle-click paste.
In most terminal emulators, Ctrl-C deviates from normal behavior in favor of sending SIGINT. However, some terminal emulators (e.g. the one in elementary OS) makes the simple decision that if text is highlighted, copy it. Otherwise, send SIGINT. That closes all loose ends for me.
No it's not. From his standpoint, the clipboard situation is broken. It's reasonable to state his viewpoint. Especially given that he's addressing a large community and not a small set of individuals, it's borderline absurd that someone would take personal offense at his statement.
It's unreasonable to expect that criticisms be phrased politically to avoid stepping on oversensitive toes.
I'm not saying asking for a different clipboard situation is unreasonable, I'm saying the phrasing is rude. Telling someone or someones to get their act together is saying they're incompetent or ineffective. It's needless because most of these someones have no financial interest in winning this poster as a user but the poster phrases it as if failing to do so is failing to be competent.
>It's unreasonable to expect that criticisms be phrased politically to avoid stepping on oversensitive toes.
If you mean politely then no, it's not unreasonable to phrase criticisms rudely. It's unreasonable to phrase them rudely and then expect the recipient to do anything about it.
edit: Also, I said _needlessly_ rude. Are you saying the poster needs to be rude?
I’m saying your interpretation of “rude” is overly sensitive.
If I say “The USA needs to get its act together and fix its broken immigration system”, I don’t see this as particularly rude. By criticizing the immigration system, I’m already saying that it’s fucked up. The fact that I use the phrase “get it together” is irrelevant to both tone and content.
And again, the subject is a large group. The idea that particular individuals should take offense at such a mild blanket statement feels kind of ridiculous.
If I needed something from someone or a group at work and I told them to 'get their act together' and do it, I don't think I'd get what I want. And they're paid to work with me.
If you go to an individual and tell them they need to “get their act together”, you’re being confrontational. If you make an equivalent statement about a group of people referred to as a third party, it’s not nearly as confrontational. Do you really not see the difference between these?
You probably don’t feel bad saying something like “McDonald’s burgers suck”, but if you tell someone who invited you to a cook-out that their burger sucks, you’re an asshole. Context and audience matter.
And people very much do talk like this is real life. People who understand context and audience can do so just fine.
gtk supports emacs style bindings. Put `gtk-key-theme-name = Emacs` under `[Settings]` in ~/.config/gtk-3.0/settings.ini. Doing `gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"` might help too. That will work in firefox/chrome too.
There are 3 clipboards, at least. Cmd-C/Cmd-V most everywhere, Ctrl-K/Ctrl-U/Ctrl-Y in most text fields, and select/middle-click in Terminal.app. It's like having 3 hands, I find it works well.
And the workarounds for multiple clipboards are SO painful. Disabling the extraneous ones is impossible and syncing them works until it DEFINITELY doesn't.
you can do that with xdotool if you want to paste the xbuffer. I suggest handling the shortcuts at the window manager level. this force ctrl-c to always do copy - even in the terminal, but nothing stty can't fix quickly - I use ctrl-x instead as it is close by.
end result, my ctrl c and ctrl v work as you would expect -- always!
I'm using xorg but very interested in Wayland. My main "fear" with wayland is that my scripts to properly handle things like a uniform copy/paste will stop working
Would you have some links? I am especially interested in ways to handle shortcuts like with autohotkey on Windows: a context dependent remap (ex: pressing a given physical key may send ctrl-tab in an application, but ctrl-pagedown in another if said other application doesn't support remapping shortcuts)
Handling shortcuts would be compositor specific. Unlike X, the display server part with Wayland is implemented by the compositors. Wayland itself is just the protocol.
It offers a lot of attractive features for what I imagine to be the typical HN demographic.
That being said, it's still got rough spots that OSX doesn't. It works great when it works, but when it doesn't....
Font rendering, display/compositor fragmentation etc...
Inb4 the anecdotal "well it works for me I just had to download the xf86 font library and compile with a legacy glibc version..." crew comes in with a thousand and one rebuttals. Problems like that are still a suboptimal user experience, no matter how you slice it.
I'd definitely consider a Linux daily driver for some of my work, but there are things that are just going to be less painful on Apple.