1. 38
  1.  

  2. 16

    If you want a good experience, the laptop needs to be sold to you as a “Linux laptop”, with the explicit promise that it has an OS with drivers that have been tested and pre-installed. Surprisingly few laptop makers are doing this (yet?).

    Linux works a lot better on my ThinkPad x270 than it ever did on the Dell XPS 13 “Developer Edition” (~5 years ago), which was sold with Ubuntu. Lenovo may not support Linux, but a lot of Linux developers use ThinkPads, so they tend to be well supported.

    The Dell XPS on the other hand was just a crappified Ubuntu install with proprietary drivers and applications to make it work. I’m not even sure why they installed all the binary crap, since Arch Linux also seemed to work for everything except bluetooth, and audio on HDMI out (which also never worked well on Ubuntu; did get that working eventually), so I just installed that over Ubuntu after I ran in to an apt-get bug that was never fixed in the Ubuntu LTS (“stability”).

    Maybe things have improved in the meanwhile, but “sold as Linux laptop” does not automatically equal “good Linux experience”.

    once, across a reboot, the entire settings panel (which is an app) just… vanished. I had to research what it’s called and reinstall it from apt. It was more funny than annoying.

    apt has the horrible habit of “helpfully” removing packages it thinks you no longer need. Removing package A may also remove vaguely related package B, even though B is not a dependency of A. There are even cases where installing a package can remove other packages, or uninstalling can also install packages. The logic can be really opaque and hard to grok.

    1. 8

      apt has the horrible habit of “helpfully” removing packages it thinks you no longer need.

      Weird Debian/Ubuntu stuff like this is why I never recommend apt-based distros anymore.

      1. 11

        Hello!

        For a moment there, after reading your comment, I wanted to fold my keyboard like a taco.

        I am pretty confident that it wasn’t your intent… :)

        …Anyway… FYI, there is no such thing as Debian/Ubuntu. Debian is a thing and Ubuntu is a thing and they are distinct.

        Debian is a very old, well designed, and respected GNU distribution. Dependency management is hard (I mean, NP-complete!), but engineers in the Debian project know that, and they care. They worked out a system of rules for keeping the dependency graph clean. Beyond that, they make efforts to teach new maintainers how to understand those admittedly complex rules. They work hard to tame the chaotic sea of packages as much as possible. May their beards be long and tangle free forever!

        Ubuntu is … popular. I’ve used it before. My best friend still does, and asks me for help with his computer frequently.. One of my pet peeves is that a lot of individual little packages depend on big meta packages that depend on gigs of desktop environment stuff.. It’s almost impossible to run Ubuntu without the default environment installed. See, you don’t have to use it, but Ubuntu puts so little care and feeding into their dependency graph that you end up in nonsense situations…

        Both Debian and Ubuntu are “dpkg-based”. apt-get and apt and aptitude are front-ends.

        dpkg does as it is told. Two things tell it what to do: the front-end and the package dependency graph (let’s call that “the repo”.)

        I assume that all contemporary package managers that aren’t broken will “do as they are told”. So, the problem with Ubuntu is their package graph and maybe their front-end tool.

        My front-end never auto-removes anything, though does remind me that I can run a command to make it remove those things that nothing depends on. I use Debian and apt-get. When I manually invoke the auto-remove feature, so far it has never removed anything that was still needed, on account of that artfully human-curated dependency graph from the repos…

        1. 2

          The only time apt has ever proposed removing packages it deemed no longer needed is when I installed those packages in support of an out-of-distro package, e.g. a downloaded .deb archive or something from a repository which I subsequently removed. It was my experience with apt versus that with rpm - this was before RedHat thought up something like yum - which made me settle on Debian and Debian-based distributions. While building rpm packages was (and possibly is, it is a while ago I last built an rpm package) generally easier than equivalent .deb packages the robustness of a .deb system managed by apt was far higher than that of an .rpm system.

          1. 1

            What do you recommend instead?

            I have a lot of criticism about apt/dpkg-based distributions, but the alternatives seem to be consistently worse.

            1. 6

              Void Linux.

              1. -8

                Void’s package manager and build system have been written from scratch.

                … in C.

                I think I’ll skip trying this. Using C or C++ in 2019 is just incredibly poor judgement.

                1. 11

                  I would much rather my system has a fast and straightforward package manager written in lean C than something like Java, or Python. Calling his choice of C “incredibly poor judgement” comes across as patronising and kind of elitist - generally in poor taste

                  1. 4

                    Well the first commit to it was in 2009.

                    1. 1

                      I’ll comment that using C in 2019 can be the right choice for certain low level tasks like firmware or important system libraries or languages or operating systems.

                      As for XBPS, it was written in 2009 by an ex-NetBSD dev. C was the most respectable language for system level stuff at that point.

                  2. 1

                    Solus.

                2. 3

                  Maybe things have improved in the meanwhile, but “sold as Linux laptop” does not automatically equal “good Linux experience”.

                  Another thing to note is that the “sold as Linux laptop” being conflated with “good Linux experience” tends to only be valid as long as the company continues to provide support.

                  1. 2

                    apt has the horrible habit of “helpfully” removing packages it thinks you no longer need

                    … but it will never remove any packages you installed…

                    1. 4

                      That’s the theory, but in practice it will also do really surprising things with packages you explicitly installed, not that this is a good model in the first place. I don’t have any examples at hand, and lack an apt-based machine. Here’s another old example which illustrates the kind of broken behaviour:

                      $ apt-get install consolekit:i386
                      
                      Reading package lists...
                      Building dependency tree...
                      Reading state information...
                      The following packages were automatically installed and are no longer required:
                        python-mutagen python-mmkeys python-cddb
                      Use 'apt-get autoremove' to remove them.
                      The following extra packages will be installed:
                        docbook-xml libck-connector0:i386 libpam-ck-connector:i386 libpam0g:i386
                        libpolkit-gobject-1-0:i386 sgml-data synaptic
                      Suggested packages:
                        docbook docbook-dsssl docbook-xsl docbook-defguide libpam-doc:i386 perlsgml
                        doc-html-w3 opensp dwww deborphan
                      Recommended packages:
                        rarian-compat
                      The following packages will be REMOVED
                        acpi-support aptdaemon apturl colord consolekit dell-recovery
                        gnome-bluetooth gnome-control-center gnome-power-manager gnome-system-log
                        gnome-user-share hplip indicator-datetime indicator-power indicator-sound
                        jockey-common jockey-gtk landscape-client-ui-install language-selector-gnome
                        libcanberra-pulse libck-connector0 libnm-gtk0 libpam-ck-connector
                        manage-distro-upgrade nautilus-share network-manager-gnome policykit-1
                        policykit-1-gnome printer-driver-postscript-hp pulseaudio
                        pulseaudio-module-bluetooth pulseaudio-module-gconf pulseaudio-module-x11
                        python-aptdaemon python-aptdaemon.gtk3widgets python-aptdaemon.pkcompat
                        sessioninstaller software-center software-properties-gtk
                        ubuntu-system-service ubuntuone-control-panel-common
                        ubuntuone-control-panel-qt ubuntuone-installer update-manager
                        update-notifier xul-ext-ubufox
                        The following NEW packages will be installed
                        consolekit:i386 docbook-xml libck-connector0:i386 libpam-ck-connector:i386
                        libpam0g:i386 libpolkit-gobject-1-0:i386 sgml-data synaptic
                      0 to upgrade, 8 to newly install, 46 to remove and 0 not to upgrade.
                      Need to get 3,432 kB of archives.
                      After this operation, 20.6 MB disk space will be freed.
                      Do you want to continue [Y/n]?
                      

                      Removed my wireless drivers like this once :-/ Easiest way to get them back was run the Dell recovery stuff :-(

                      I’ve been told that apt is the new apt-get; I don’t know how well it does in comparison, as this was before apt.

                      1. 4

                        There is a lot to unpack here.

                        It appears that you’re working with multiarch. That’s more complex that average.

                        Second, there does not appear to be a package named dell-recovery in the Debian repos. Was it there in the past, or is it a third party package? I bet it depended on specific versions of some packages rather than depending on something like “>= version 1.2.3. This is super-common among third party packages because the authors don’t know what to expect in the future from those packages and they fear an upstream upgrade breaking their package…

                        Finally, that package consolekit has been removed from Debian, so I can’t figure out how to check the reverse dependencies… But I can tell you, it was in the admin section. Those packages are all.. I dunno, “low level” or “fundamental”. It appears that you asked your 64-bit Debian to install the 32-bit version of a fundamental package.

                        1. 1

                          But why are those packages being removed? Why remove packages when installing a package? What’s the rational?

                          1. 1

                            There is a conflict between the new package (or its dependencies) and existingly installed packages (or their dependencies). Thus the package cannot be installed on the current syste. Instead of simply refusing, apt suggests a possible system the package could be installed on (by removing some current packages) and asks you if that is what you want to do.

                          2. 1

                            What would you prefer happen in this case? Just refuse to install?

                            1. 6

                              For example; that’s what most systems do. Or give me an option asking me what to do. Certainly not removing critical packages like pulseaudio, gnome-control-center, etc. No other system I’ve used tries to be “smart” like this.

                              Computers are really dumb, and algorithms like this doubly so. In attempting to do “the sane thing” apt-get is more likely to leave a system in a usable state, rather than the reverse.

                              1. 2

                                I understand your point that maybe it should force you to be explicit and remove conflicting packages yourself. It does however ask you if you want to continue after it has told you what it plans on doing. Also, often if you say no it’ll offer an alternate solution to the conflict that may be more palatable.

                                1. 7

                                  It does however ask you if you want to continue after it has told you what it plans on doing

                                  Yeah, but the output needlessly long, noisy, and has a general “wall-of-text”-y feel to it. It’s easy to miss things, especially if it’s just a few packages that are removed (instead of a whole bunch).

                                  Here’s how it could look:

                                  $ apt-get install consolekit:i386
                                  
                                  The following packages will be REMOVED
                                    acpi-support aptdaemon apturl colord consolekit dell-recovery
                                    gnome-bluetooth gnome-control-center gnome-power-manager gnome-system-log
                                    gnome-user-share hplip indicator-datetime indicator-power indicator-sound
                                    jockey-common jockey-gtk landscape-client-ui-install language-selector-gnome
                                    libcanberra-pulse libck-connector0 libnm-gtk0 libpam-ck-connector
                                    manage-distro-upgrade nautilus-share network-manager-gnome policykit-1
                                    policykit-1-gnome printer-driver-postscript-hp pulseaudio
                                    pulseaudio-module-bluetooth pulseaudio-module-gconf pulseaudio-module-x11
                                    python-aptdaemon python-aptdaemon.gtk3widgets python-aptdaemon.pkcompat
                                    sessioninstaller software-center software-properties-gtk
                                    ubuntu-system-service ubuntuone-control-panel-common
                                    ubuntuone-control-panel-qt ubuntuone-installer update-manager
                                    update-notifier xul-ext-ubufox
                                  
                                  The following NEW packages will be installed
                                    consolekit:i386 docbook-xml libck-connector0:i386 libpam-ck-connector:i386
                                    libpam0g:i386 libpolkit-gobject-1-0:i386 sgml-data synaptic
                                  
                                  Need to download 3,432 kB; 20.6 MB disk space will be freed.
                                  8 to install, 46 to remove
                                  
                                  :: WARNING: this operation will REMOVE packages!
                                  
                                  Do you want to continue [y/N]?
                                  

                                  So much cleaner, and the default is now “no”, as it’s an unexpected dangerous operation. The warning text should probably stand out (bold, standout attr, colour, whatever your taste prefers).

                                  This is getting a bit off-topic, but commandline interfaces are user interfaces every bit as much as graphical desktop and web apps. It’s something that needs to thought about, designed, ideally it should be tested, and should be tweaked based on how people are actually using it.

                                  apt-get is a good example of a terrible user interface in many ways. It’s the commandline version of a chaotic ERP product or 2001-era webapp that has grown since. Sure, it may be powerful and the underpinnings are probably good, but the UX is … not ideal.

                                  apt has since replaced apt-get; I don’t know if it does better as I haven’t used any of this in a while, but this post suggests it may not :-(

                                  1. 4

                                    They already put REMOVED in all caps. Also, after you do a few thousand apt-get invocations, you certainly notice when the ‘removed’ stanza is present vs when it is not.

                                    Debian was the first OS I knew about that had a reliable, sane package manager.

                                    If the solution to the problem is to reinstall packages, then the system is NOT broken. If the solution to the problem is to reinstall the OS from scratch, then the system is BROKEN.

                                    I hope everybody understands that in this circumstance, Debian was preventing the system from becoming broken. Small price to pay…

                                2. 2

                                  In attempting to do “the sane thing” apt-get is more likely to leave a system in a usable state, rather than the reverse.

                                  Never personally happened to me, but I know a bunch of people new to linux who have broken an ubuntu system with an apt command. This stuff never seems to happen on arch/fedora/whatever, but apt just seems to have a propensity for breaking stuff if you aren’t careful.

                        2. 8

                          As a system76 user (galago pro: it’s a rebranded clevo but it was on sale for a great price with two SSDs, one of which is NVMe2) on vanilla ubuntu (not system76 ubuntu - possibly regretting that) I’ve had an overall great experience.

                          All issues have been ubuntu issues: network manager is still the best network manager, somehow. I tried wpa_cli and was sad. The finder and system ui are still quirky: large, goopy buttons, inconsistent menu options, etc.

                          Can anyone recommend:

                          1. A better network manager?
                          2. Tweaks with a low chance of borking things that can make the UI better? I don’t really want to switch desktop environments but if I must, I must. KDE has been ok but a bit unstable, and xfce is clean but a little underwhelming

                          Thanks!

                          1. 2

                            I’ve been using Kubuntu for some years now and am fairly happy with it. I’d look into their network manager and see if that works for you. Yes KDE has some unstable areas but it’s been working good for me on a hybrid-gpu setup laptop. Disclaimer: I really like KDE in how it behaves and their look ’n feel.

                            The only thing that breakes under 18.04 LTS currently is the desktop sometimes when switching to another virtual one on the intel GPU, but that’s solvable by ALT+F2 and typing in kill so the known command killall plasmashell; kstart plasmashell; exit is selected ;) So I’d recommend trying 18.10. You can also try bleeding edge with the KDE-NEON distribution ( https://neon.kde.org/ )

                            1. 2

                              I’ve never been happy with network managers.

                              NetworkManager (who chose that name!) has all of the features, but it’s difficult to understand and fix when things go wrong. A traditional big Redhat project.

                              Wicd seemed to be unreliable the few times I’ve tried to use it over the years.

                              I’ve settled on using wpa_supplicant directly for my wifi needs (it’s config file is really simple) and dhcpcd for my dhcp needs; but I know this is not everyone’s cup of tea. Joining a new wifi network requires sudo, remembering scan commands and a bit of typing. What makes me happy is that it rarely breaks, and when it does it’s easy to debug and fix.

                              If you use more advanced automation features of NetworkManager (VPNs, etc) then I’m not sure of any good solutions other than manual (like me). Network management is an inherently complex topic.

                              I too would love to hear if people have had good experiences with alternatives.

                              1. 3

                                I use nmcli and/or nmtui with NetworkManager. This seems to be the most painless option for configuring networks with anything other than Gnome (I’m using swaywm).

                            2. 7

                              I went through a very similar process evaluating a Linux laptop and was also surprised that there was little hardware in the PC world that rivalled a Mac. I had a work issued ThinkPad that I found very underwhelming.

                              The screen, sadly, is not retina (also known as 4K or Hi-DPI), and it is noticeable. I don’t mind most of the time, and my friends tell me I wouldn’t want a retina display yet anyway, because X11/Gnome doesn’t support it well yet

                              HiDPI was a hard requirement for me. I use Linux on a 4K XPS 15 and a desktop with a 4K screen. I think your friends have led you astray. GNOME works very well on a Retina display with 4 pixels per point. I’ve now stopped using GNOME and use Awesome and the HiDPI works fine there too.

                              1. 6

                                Yeah, “it only matches pixels” was what I had heard too. The breaking change of retina is that you can no longer do a one-to-one mapping of “real pixel” to “display pixel”, or you end up with itty bitty text and itty bitty navigation icons – I usually set the ratio to 1.5 or so, not 2. So gnome will have to switch to a virtual pixel, create textures for the windows, and then map those textures to real pixels on the screen. This may very well be a breaking change for X11 too (I’m not sure). :(

                                1. 5

                                  Ahh right fractional scaling was not supported until the most recent release, 3.32 and then only on Wayland: https://www.gnome.org/news/2019/03/gnome-3-32-released/

                                  1. 5

                                    What Apple does, and what most (all?) Wayland compositors do, is render at ceil(scale) and downscale on GPU when rendering. Works well in general, but tiny pixel-perfect icons are of course no longer perfect.

                                2. 5

                                  a tiling terminal app similar to iTerm

                                  I think what folks do is use one excellent terminal and one excellent terminal multiplexer runnin inside it. I use st & tmux, but have used gnome-terminal and screen in the past.

                                  1. 3

                                    I like tmux, but like it even more when I don’t have to use it. I’m lucky that my wm (i3wm) supports tabbing well enough I can open another term instead of having to use a natively tabbed term or a terminal multiplexer.

                                    My pinchpoint: scrollback history. I frequently like to use my scroll-wheel to view my scrollback history, I find it convenient and ergonomic whether with a mouse on my desktop or a two-finger scrolling touchpad on my laptop.

                                  2. 4

                                    I so, so badly want to support Purism or System 76, but until they can support usb-c charging, I fear I’m stuck with my Dell XPSs.

                                    1. 1

                                      Why?

                                      1. 6

                                        I don’t have a usb-c laptop yet, but I’m requiring it in the future for a few reasons:

                                        • I can buy a 3rd party power adapter and as long as it supports usb-c PD at the wattage I need, that’s all I need to know.
                                        • I can separate the cable from the charger, helping for packing. Or dealing with replacing a bad cable (my macbook charger cable eventually frayed after a few years).
                                        • There’s a higher probability I can use someone else’s charger (e.g. apple switched to usb-c)
                                        • There’s some amazingly small 65W chargers coming out leveraging power supply advances (GaN, High-Freq conversion designs) that just happen to support usb-c. Finsix started with the dart-c (seemingly discontinued), other competitors are now out.
                                        • I could theoretically buy a lighter laptop with a smaller battery and pack a usb-c battery pack for the times I really need the extra weight / battery life.
                                        • You can sometimes trickle charge from an traditional usb-a port (e.g. when on a plane / in a car) with the right adapter.
                                        • Theoretically pack fewer cables/chargers if you have multiple usb-c devices (phone, camera, etc).
                                        1. 6

                                          I think with the arrival of the USB-DRM there is a high chance that you might end up having USB C without any of the benefits you listed.

                                          1. 1

                                            Fair point, looks like some hp laptops already have some drm affecting charging.

                                          2. 2

                                            Is the USB C charger world that standardised? I don’t use any device with C, and I’m suspicious of the idea of companies playing nice together when it comes to power supplies.

                                            From what I’ve read the headphone part of the C world is a shamble of incompatibility (with accusations of it being intentional). Why wouldn’t they do the same for chargers?

                                            1. 2

                                              Mostly. HP laptops are the only ones I know that only use HP chargers.

                                              1. 2

                                                You’re right. Most of the laptop vendors with usb-c seem to follow Power Delivery spec, but that doesn’t necessarily mean a device has to accept a charging profile with a lower power or different output voltage. Which is reasonable.

                                                And then there’s Qualcomm which has usb-c chargers (usually for phones) that aren’t following PD and instead has their own ‘quickcharge’ protocol instead.

                                            2. 1

                                              I just can’t imagine going back to the world where there is a mismatched tangle of cables on my desk that are all mutually incompatible, or having to lug chargers from room to room or office to home. I love that I can trust that most offices and homes will have a charger I can just use. but most of all, I struggle to carry too much weight on my back, so every gram of charger brick I don’t have to carry is a lifesaver.

                                              1. 2

                                                There is another way :)

                                                I run an old ThinkPad with FreeBSD, and have a few docking stations for it: one for home, one for the office, one for my current client’s office. Old ThinkPad gear is cheap - the priciest of the docking stations cost me $50.

                                                This way it’s even easier than cables and hubs - just sit down, press laptop onto docking station, beep, done. When it’s time to leave, suspend, close the lid, press the eject button, slip laptop in bag.

                                                1. 1

                                                  I have 8-10 of the old barrel-style thinkpad chargers scattered in various corners of my house and in bags ready to go. Throwing that all away for USB-C sounds awful but I suppose it’s going to have to happen at some point.

                                                  1. 2

                                                    Sounds like your setup is similar to mine. I also have three of the cheaper X-series (also barrel-era) for the kids; I’d much rather they use a ‘real’ computer running Linux than iPads or similar.

                                                    I’m going to have to switch at some point. Still unsure when, and to what, though. Most likely is a newer generation of X-series.

                                                  2. 1

                                                    ah, I should have been more clear - my goal is to not add any more proprietary cables or docks. I (and everyone I know) have USB-C cables in our homes and offices and purses. it seems a step backwards to buy brand new hardware that can’t charge off the most common adapter.

                                            3. 4

                                              a tiling terminal app similar to iTerm

                                              Check out Tilix.

                                              1. 3

                                                I believe it was a ‘latitude’ that we got from Eazel.

                                                1. 3

                                                  I very much agree with the author on the core criteria. That is, out-of-the-box reliable sleep/resume and wireless support. Combine that with a high resolution display, good out-of-the-box battery life and a nice keyboard and I’d be happy. (Macs fail the keyboard, but get all of the rest right.)

                                                  1. 2

                                                    The sleep feature does glitch periodically on my Lenovo T420. Otherwise, it’s run great so far. It was under $300 with Core i7 on eBay.

                                                    1. 1

                                                      tiling terminal app similar to iTerm

                                                      We usually use a terminal + a terminal multiplexer (like tmux).

                                                      If you want a single package that does both there is the Kitty terminal.

                                                      1. -1

                                                        the current model, the “Thinkpad X1”.

                                                        Sorry, what? The current model of the T series is the ThinkPad T480 and anyone who recommends a non-T series ThinkPad to a software developer is smoking something special.

                                                        1. 4

                                                          The X series are essentially just a smaller/more portable version of the T series (12.1” or 13.3”)

                                                          Things get a bit murky with the X1, since it’s not based on the T series or “older” X series (e.g. T60 -> X60, T480 -> X280) but a new smaller “UltaBook” design from scratch; the hardware is quite different. Arguably, the X1 should have been named different to avoid confusion, but since when are product names based on clarity, right?

                                                          The A series are a T480 and X280 with an AMD chip (not to be confused with the old A series, which got renamed to P series). The P series is the “high performance” version of the T series. All fine machines.

                                                          You’re probably thinking of the E and L series, which are essentially cheaper versions of the T or X series. As far as I know, they’re still fine laptops and loads better than the crap from Acer and such. It’s a good option for those who don’t want – or aren’t able – to spend to dollar for a top machine.

                                                          1. 2

                                                            I wouldn’t recommend the P series though. Their Linux support is extremely poor.

                                                            1. 1

                                                              The A series are a T480 and X280 with an AMD chip (not to be confused with the old A series, which got renamed to P series). The P series is the “high performance” version of the T series. All fine machines.

                                                              Unfortunately, though, these (along with the E and L series) have relatively poor Linux support.

                                                              1. 1

                                                                Based on https://wiki.archlinux.org/index.php/Laptop/Lenovo#A_series it seems to be working at least reasonably well. I’ve also seen some people in /t/ThinkPad using them with Linux.

                                                                Haven’t tried it myself.

                                                                CC: @soc

                                                                1. 1

                                                                  Oh, that’s great! This is a change in the state of affairs from last year, but I’m very excited to hear this. Perhaps soon I can live a relatively Intel-free life…