Pop!_OS 17.10Pop!_OS is a new Linux distribution from System76, a company that has been in the Linux hardware business for twelve years. Until recently, System76 computers shipped with Ubuntu as the only pre-installed operating system option, but now System76 is taking more control over the user experience offered on their computers by releasing their own Ubuntu-based distribution. I was recently at All Things Open, a technology conference in Raleigh, North Carolina, where System76 had a booth. At their booth, they had Pop!_OS 17.10 running on a laptop for people to try. Their booth was very busy, but during one of their brief lulls, I went over to their booth and had a brief chat, and I got one of the USB flash drives they were giving out with the Pop!_OS installation image on it.
For this review, I installed Pop!_OS 17.10 using the flash drive I got at All Things Open, but Pop!_OS ISOs are available to download on the System76 website. They have an image for computers with Intel and AMD graphics and a separate image for computers with NVIDIA graphics. The NVIDIA image comes with the proprietary NVIDIA drivers pre-installed. The Intel/AMD image is 1.75GB and the NVIDIA image is 1.91GB.
I should note that while System76 does sell hardware, a System76 computer is not required to run Pop!_OS. The testing for this review was done using the Lenovo Ideapad that I currently use for all of my reviews. There were no compatibility issues beyond a problem with my laptop's webcam that is consistent across every Linux distribution I have tried.
The installation process for Pop!_OS is similar to Ubuntu, but there are some key differences. The process begins by booting a flash drive or DVD, which loads the live desktop. The live desktop can be used to try out the distribution to see how it works before running the installer. The installer used by Pop!_OS is Ubiquity, just like Ubuntu, but Pop!_OS only uses Ubiquity to select the language and keyboard layout, and partition the hard drive. New user creation in Pop!_OS is moved to the system's first-boot process and is handled by a modified GNOME Initial Setup.
The two-stage installation process reflects System76's experience as a hardware company. The first part of the installation, the part handled by Ubiquity, includes the things that someone setting up a computer for someone else needs to handle, while the user gets to set up their own machine at first boot. This change to the installation work-flow is really handy for people who configure computers for others. Just install Pop!_OS through the end of the Ubiquity process, shut off the machine, and the machine's new owner can create their own username and password when they boot their new machine.
Pop!_OS 17.10 -- New user creation on first boot (full image size: 48kB, resolution: 1366x768 pixels)
The Pop!_OS user experience
Pop!_OS is based on Ubuntu, but it has some notable and significant changes compared to Ubuntu 17.10. The most visible change is Pop!_OS's use of a customized GNOME experience that does not use the various tweaks found in the latest release of Ubuntu. Ubuntu customized GNOME their way and Pop!_OS went in a different direction. Pop!_OS is closer to the stock GNOME experience, but with a custom GTK theme, an icon theme based on the Papirus icon set, different fonts (Fira and Roboto Slab), and a collection of desktop wallpapers. There are also a few GNOME Shell extensions used to tweak a few behaviors: a suspend button in the top-right settings menu, an altered Alt-Tab behavior, and workspaces are always shown in the Activity overview without having to mouse over them to make them pop out.
The biggest usability change comes in the form of customized keyboard shortcuts. Pop!_OS changes the default GNOME keyboard shortcuts to prioritize different things when compared to stock GNOME. For example, switching virtual desktops is SUPER+UP or SUPER+DOWN, while functions for adjusting a window within a desktop are handled with CTRL+SUPER+UP for maximize, CTRL+SUPER+DOWN to restore to a non-maximized state, CTRL+SUPER+LEFT and +RIGHT to tile to the left and right halves of the screen, and moving a window to a different desktop is SHIFT+SUPER+UP or SHIFT+SUPER+DOWN. There are several more keyboard shortcuts, some new, some left as the GNOME defaults; the whole list is available on System76's Pop!_OS Keyboard Shortcuts page. As a GNOME user, it took some time to get used to the changes and I am still fighting muscle memory for some of the more common tasks, but the Pop!_OS shortcuts make sense and are well thought out.
While the aesthetic and usability tweaks are the most noticeable change, Pop!_OS's divergence from Ubuntu goes beyond a different look-and-feel. The software included on the ISO is very different from the selection included in Ubuntu. Pop!_OS's GNOME session uses Xorg, not Wayland, and it has a much smaller collection of graphical programs installed by default. Firefox serves as the default web browser, Geary is the e-mail program, LibreOffice (except for LibreOffice Base) is included and put into its own App Folder in GNOME Shell, but that is about it. The default software selection is so slimmed down that GNOME Videos pulls double duty as the default video and music application, instead of using Rhythmbox as the music player. The rest of the software included is the standard collection of GNOME utilities and a few Pop!_OS tools for installing additional software.
For developers, Pop!_OS comes with git, gcc, make, and other build tools pre-installed. While Pop!_OS does not pre-install every single possible program language, including some basic development tools by default provides a nice starting point and really sets Pop!_OS apart from many of the other Ubuntu-based distributions. Node.js, R, Ruby, Rust, etc., programmers will need to add packages to suit their needs, but thanks to Pop!_OS's Ubuntu-base, there are plenty of packages available.
Overall, the user experience in Pop!_OS is very good and well thought out, but there are a few issues. The biggest one is the fact that the Help application is a unmodified Ubuntu Desktop Guide, which in turn is GNOME Help re-branded and edited. Most of Pop!_OS does a good job at re-branding itself to differentiate itself from Ubuntu (at least where necessary; it makes sense that sources for software packages still say Ubuntu because they are pointing at Ubuntu repositories), but the Help program is the one major exception. Even if they tweaked the Help package to re-brand it, there is still the bigger problem, which is that the information contained within is sometimes inaccurate because the keyboard shortcuts listed in the help file do not match Pop!_OS's customized shortcuts. One other issue worth noting is that because Pop!_OS uses a custom icon set, the default icons for various applications are overridden by Pop!_OS specific icons. While I personally love the visual consistency and found that many of application icons were close enough to projects' official icons to be instantly recognizable, I can understand that this might not be preferred by upstream developers who view their icons as part of their brand (there is a GitHub issue open about this).
As noted above, the default selection of graphical software is slimmed down, so most users are going to want to add packages of their choosing to their systems. Pop!_OS provides two graphical tools for doing this, both of which are forked from projects for elementary OS. Of course, for the command line savvy, apt and dpkg are also available.
The main program for installing and updating software is Pop!_Shop, which is a fork of elementary OS's AppCenter. This is a standard App Store-like experience with programs grouped by category. Pop!_Shop is really easy to use and has a nice selection of applications, but it does require AppStream metadata for applications to show up, so some applications might not appear in Pop!_Shop.
The other tool is Eddy, which is for installing .deb packages downloaded from sources outside the Pop!_OS and Ubuntu repositories. Eddy is the default application for running .deb files, so a .deb file downloaded for an external source, e.g., GitHub's Atom, can be installed just by double-clicking on the .deb file. If launched from its own application icon instead of by opening a .deb file, Eddy allows for dragging a .deb onto its window to install, or it can open a file picker dialog. If .deb packages are available in the Download folder, Eddy shows an option that will list all the packages available and let the user install one or all of the available .deb files.
Pop!_OS is incredible, especially for a first release. There are various minor things that need to be fixed, and they really need to replace the Ubuntu-branded Help file with a Pop!_OS specific one, but it is easy to tell that a lot of thought went into this release. System76 has spent the past twelve years making informed choices about hardware to provide their customers with a good Linux experience, now they are leveraging that expertise to curate software into their own distribution. Yes, at this stage Pop!_OS is mostly curating the good parts from upstream, but the overall package is what matters and, in this case, the overall package is great. If System76 can build solid relationships with various upstream sources, make UX decisions based on real user testing (like their design documents say the plan to do), and grow Pop!_OS's brand recognition in the maker-space and education fields, they have a distribution that is really, really worth watching. I highly recommend Pop!_OS to anyone, but especially to those looking for a distribution that is designed by makers for makers.
* * * * *
Hardware used in this review
My physical test equipment for this review was a Lenovo Ideapad 100-15IBD laptop with the following specifications: