DistroWatch Weekly, Issue 741, 4 December 2017

Feature Story (by Joshua Allen Holm)

Pop!_OS 17.10 Pop!_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.



Installing Pop!_OS



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.





Pop!_OS 17.10 -- The customized Ubiquity installer

(full image size: 252kB, resolution: 1366x768 pixels)



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.





Pop!_OS 17.10 -- GNOME Files with custom theming

(full image size: 58kB, resolution: 1366x768 pixels)



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.





Pop!_OS 17.10 -- Live desktop showing applications

(full image size: 509kB, resolution: 1366x768 pixels)



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).



Installing software



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.





Pop!_OS 17.10 -- The Pop!_Shop

(full image size: 103kB, resolution: 1366x768 pixels)



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.





Pop!_OS 17.10 -- Eddy package installer

(full image size: 51kB, resolution: 1366x768 pixels)



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.



Final thoughts



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: Processor: 2.2GHz Intel Core i3-5020U CPU

Storage: Seagate 500GB 5400 RPM hard drive

Memory: 4GB of RAM

Networking: Realtek RTL8723BE 802.11n Wireless Network Adapter

Display: Intel HD Graphics 5500 * * * * * Visitor supplied rating



Pop!_OS has a visitor supplied average rating of: 8.8/10 from 273 review(s).

Have you used Pop!_OS? You can leave your own review of the project on our ratings page.





Miscellaneous News (by Jesse Smith)

openSUSE's Tumbleweed snapshots, Q4OS can be installed on a Windows partition, Fedora 25 reaching its end of life Rolling releases, such as openSUSE's Tumbleweed, provide a regular stream of package updates, keeping users on the cutting edge of software. One of the drawbacks to using a rolling release distribution is there are a lot of updates and an upgrade in one dependency can trigger the upgrade of many related packages. Jimmy Berry is working on a solution which maintains the benefits of a rolling release while providing a snapshot of recent packages to cut down on the number of upgrades required when installing a new package. " Tumbleweed, being a rolling distribution, is constantly changing and packages are constantly being rebuilt against one another and updating requirements. As such it becomes necessary to update even when undesirable. For example, one is running snapshot 17 and the next day snapshot 18 contains a Qt update that rebuilt a large number of packages. When attempting to install an application that depends on Qt one is greeted with an ugly unresolvable error. It is then necessary to run a full update, likely very large with many unrelated changes, in order to simply install an application as would have been possible yesterday.



If a remote repository containing historical snapshots was available one could simply install the application and perhaps the handful of new dependencies it requires rather than having to update the entire system. This provides one with the benefits of a rolling distribution without requiring the constant change. A week later when a new kernel and DRM stack provides an exciting feature it is still easy to update everything and be running the latest code, but the user is not interrupted by having to update when it should not be necessary. " More details on Berry's ideas and how they can be used with openSUSE's default file system (Btrfs) are described in his mailing list post. * * * * * The Q4OS team has introduced a new way of installing the lightweight Q4OS distribution on computers which run Microsoft Windows. Since partitioning a hard drive and installing a new operating system can be daunting tasks for new users, the Q4OS developers are making it possible to dual boot Windows with Q4OS without any partitioning required. " We are happy to introduce a first stable release of the Q4OS for Windows 10 installer. It allows everyone to install Q4OS alongside Windows in an easy way, with no need of modifying an existing Windows operating system, nor any of software installed, even with no need of repartitioning your disk drive. Simply download and run Q4OS installer, just like any other Windows application, and follow the installer instructions. The installer will install and configure your computer to be able to run Q4OS or Windows 10 in a dual boot mode. Once you perform the setup, you will be able to switch back and forth between Windows and Q4OS each time you restart your computer. This installer is compatible with Windows 10, as well as the 7 and 8 versions, and it's able to use Secure Boot, if available in the PC firmware. Secure Boot will allow you to boot Q4OS in a smooth and safe way. " The Q4OS installer is able to install its operating system on the existing Windows partition by using a large loopback file which contains the Q4OS distribution. * * * * * Ryan Lerch has reported that Fedora 25 is nearing its end-of-life and will no longer receive security updates after December 12, 2017. " With the recent release of Fedora 27, Fedora 25 officially enters End Of Life (EOL) status on December 12th, 2017. After December 12th, all packages in the Fedora 25 repositories no longer receive security, bug fix, or enhancement updates. Furthermore, no new packages will be added to the Fedora 25 collection. Upgrading to Fedora 27 or Fedora 26 before December 12th 2017 is highly recommended for all users still running Fedora 25. " Upgrade instructions for migrating from Fedora 25 to version 26 are provided. * * * * * These and other news stories can be found on our Headlines page.





Tips and Tricks (by Jesse Smith)

Keep terminal programs running, using the at command, reverse OpenSSH connections This week I would like to share some commands I find useful on a regular basis. There is no theme tying them together, other than I find myself using them about once a week.



The first command line tip I would like to look at covers ways of launching applications and having them run in the background, even when the terminal closes. We can accomplish this by placing the & suffix at the end of commands. For example, we can launch Firefox and have it run while we continue to use the terminal by typing: firefox & Some command line shells will terminate programs they started when we close the terminal in order to clean up after themselves. We can avoid having our application closed by telling the shell to disown the program we launched. In the following example we open Firefox and then disown the browser's process to make sure it does not get terminated when we close the terminal: firefox &

disown While the above commands work well enough, there is one problem: desktop applications will often spew debugging information to the terminal while they are running. This means Firefox (or another application) may dump information into our terminal window where we are trying to work, which is both messy and distracting. We can work around this by redirecting output and having it discarded. We do this by sending all output to a file called /dev/null where the operating system merely discards it rather than saving it. The following example starts Firefox, sends all of its debug output to /dev/null to be deleted and disowns the browser so it will continue to run if we close the terminal. The "> /dev/null" part indicates where we want to send text output, in this case the null file. The "2>&1" lets the shell know it should send both normal output and error messages to the null file to be discarded. firefox > /dev/null 2>&1 &

disown * * * * * Sometimes we want to perform an action in the future, but do not want to sit around and wait to type in the command. There are a few approaches to scheduling tasks. Generally people use the cron command to schedule repeating tasks, or maybe sleep to handle short-term delays. Neither is ideal if we want to schedule one event to happen just one time in the semi-distant future.



For cases like this the at command is ideal. at lets us set up a command to be run at a specific time and date in the future. The at command is pretty good about recognizing dates and times in human-readable format. On the command line we specify the time we want something to happen and then the at command will display a prompt where we can type in the program we want to run. After we type the program to be run we can press Ctrl-D to return to the shell. Here is an example where we copy the contents of our Documents folder to a Backup folder at 5:30pm. at 5:30pm

> cp ~/Documents/* ~/Backup/

> Ctrl-D We can specify different days too. The following command clears out the contents of a temporary directory on the last day of November. at 6:00pm Nov 30

> rm ~/temp/*

> Ctrl-D There are limitations, because of the way at processes jobs, by default it will not open graphical applications on our desktop at a set time. The at command is designed to handle non-interactive tasks and situations. Once a job has been run once, at forgets about it. This means if we schedule a task to happen at noon, it only happens at noon today, the task is not repeated at noon tomorrow. * * * * * Have you ever wanted to set up an OpenSSH server on your computer for remote access, but found there was a firewall in the way you were unable to adjust to allow connections through? Sometimes businesses or ISPs will block incoming connections and this gets in the way of people who want to be able to work on their computers while away from the home or office. There is a possible workaround for this situation which involves using another computer to relay the connection



Basically, we can tell our computer which is behind the firewall to connect to another computer where we have access. This other computer could be one of ours or a personal server or a VPS, the important thing is wherever this other computer is, it needs to be running OpenSSH and we need to be able to log into it remotely.



In this example I will refer to the computer behind the firewall as PC-Home and the remote system we can access whenever we want as PC-VPS. To grant ourselves access to the computer behind the firewall we need to open a connection from PC-Home to PC-VPS. The connection we will open will have a special property which allows the remote computer (PC-VPS) to send signals back to PC-Home, as if the firewall were not in the way.



On PC-Home we can initiate this connection by running the ssh command and specifying which remote computer (PC-VPS in this example) will act as our proxy. ssh -R 12701:localhost:22 pc-vps What the above command does is contact the remote computer PC-VPS and tell it to forward any connections it receives on port 12701 to our home computer (PC-Home) on port 22. Port 22 is the default OpenSSH port.



Now, if we are away from home, we can connect to PC-Home by bouncing the connection off PC-VPS. We can do this by running ssh -p 12701 pc-vps Whatever computer we are running contacts PC-VPS, which forwards our request to PC-Home along the channel which was set up earlier. Since the computer behind the firewall initiated the connection, the firewall does not block the incoming traffic and we can establish a shell session on our home computer.



The PC-Home computer can close the link at any time by terminating its OpenSSH connection to PC-VPS, disappearing again behind its firewall. * * * * * More tips can be found in our Tips and Tricks archive.





Released Last Week

Torrent Corner

Upcoming Releases and Announcements

Opinion Poll

Scheduling tasks



In this week's Tips and Tricks column we discussed scheduling tasks to be completed in the future, using the at command. While at is good at setting up one-time jobs, regular tasks are often started by another tool called cron. This week we would like to find out how you schedule jobs which need to be run in the future.



You can see the results of our previous poll on battery life time in last week's edition. All previous poll results can be found in our poll archives.



Scheduling tasks



I use at: 32 (3%) I use cron: 377 (30%) I use "sleep && command": 37 (3%) I use a combination of the above: 123 (10%) I use another tool: 59 (5%) I do not schedule tasks: 632 (50%)

DistroWatch.com News