Five years. Can you believe it?
Five years! Five years of learning, engineering, and developing an OS alongside the best community we could ask for. To celebrate five years, we’re looking back at where Pop!_OS started, how it’s grown, and where it’s going next. Thanks for joining us on this incredible journey!
System76 first decided to develop an OS as a way to better shape our customers’ experiences and harmonize the software with our hardware, thus creating a holistic product. The 17.10 version was our first venture into developing the OS. After holding a discussion between System76 HQ and Linux community members in Pop!_Chat, we set about establishing defaults for the OS.
Pop!_OS began with Ubuntu 17.10, the X compositor, and our very own Pop!_Theme, which featured System76’s bright, bold brand colors. The default applications were as follows:
- Document Viewer
- GNOME Calendar
- GNOME Contacts
- GNOME Calculator
- GNOME Terminal
- Files (Nautilus)
- Image viewer (Eye of GNOME)
- GNOME Photos
- GNOME MPV
- Pop!_Shop — An application library based on the elementary OS AppCenter
Additionally, the Pop!_OS wallpaper library included 30 default wallpapers. Notably, Pop!_OS did not yet have a default email client or weather app; there were interesting projects in development at the time, and we wanted to see where they ended up.
Some custom keyboard shortcuts were greenlit for the debut, such as Super + T to open Terminal and Super + F to open Files.
After using the Ubuntu installer in its first release, Pop!_OS was given its own unique installer, nerdified with one robot’s journey into space. The backend used DistInst, a task which entailed thousands of lines of code.
A dark mode was added as part of a major theme update.
To get to the desktop quicker on boot, we moved from the GRUB bootloader to systemd. Check out this blog to learn more about the engineering work involved in that process.
Pop!_OS 18.04 is also where power profiles first made their entrance. The Performance profile prioritized power over battery, while the Battery Life mode was built to make your charge last longer.
Getting the hang of this now. Pop!_OS engineers continue to iron out and expand on the features we’ve built so far. Repoman provides Pop!_OS with a graphical tool to configure repositories, allowing users to bring in more applications that they require.
With a good chunk of CUDA and Tensorflow users on Pop!_OS, we shortened the command to install the software down to a single line of code.
sudo apt install tensorflow-cuda-latest
We’re over a year in at this point. Our Support Team has experienced many Pop!_OS users who love to play around and experiment with their OS. In order to make everyone’s lives easier, a Refresh Install feature was added that reinstalls the OS while keeping data in the Home folder intact.
Dark Mode makes its first official appearance in the Appearance panel. Coders everywhere rejoice.
Shortly before the release of Pop!_OS 19.04, Pop!_OS made its first appearance on Linus Tech Tips. (The Matrix episode.)
Upgrades were the primary focus of this release. Pop!_OS 19.10 introduced our first GUI upgrade. In addition to the Terminal route, users could now upgrade their OS straight from Settings. This version also featured offline upgrades, where the upgrade could be downloaded and then installed offline at a later time. Our writer rested easy knowing he didn’t have to ask anyone what the upgrade command was this year.
The Light-Dark theme switcher: Pop!_OS’ final form. Users could now see each theme in real-time before making their decision. This feature has since been used as a default in other Linux projects, and also on the Pop!_OS web page.
Tensorman is a toolchain manager we created to make tensorflow commands easier to memorize, and it enabled users to work with multiple versions of tensorflow. For example, executing a python script inside of a Tensorflow Docker container with CUDA GPU and Python 3 support became as simple as running:
tensorman run --gpu python -- ./script.py
This was a big one. Pop!_Shell added an extra layer of efficiency that helped Pop!_OS to really establish its own identity. We included a comprehensive list of keyboard shortcuts to create a fluid experience for users with keyboard-centric workflows. A lot of our users, even employees, were already using a tiling manager; we saw Auto-tiling as an opportunity to make window tiling more accessible and feel more refined.
Speaking of “Auto”, automatic firmware updates through LVFS and the Settings application made it simple for users to update their system’s firmware. These updates were not only available on System76 hardware, but on hardware for vendors who use LVFS as well. This feature also added more depth to our open firmware project, too.
Speaking of simple, the new Hybrid Graphics streamlined workflow that makes use of NVIDIA graphics, but that doesn’t always have to. Users in Hybrid Graphics mode could now launch their applications using the graphics card, while running other applications on the CPU to conserve battery — without having to restart their systems.
Speaking of applications, the Flathub repository was added to Pop!_OS to expand its software library.
Speaking of software, we streamlined the Terminal command to upgrade the OS with the pop-upgrade release upgrade command.
Speaking of upgrading…on to 20.10!
(Speaking of speaking…Do Not Disturb has deflected 576,420 notifications since this release, probably.)
Window stacking was added to Pop!_Shell as a way to further organize your desktop. Tiled windows now have the ability to “stack” atop one another, much like tabs in a web browser.
Individual windows or all windows from a specific application could also be exempted from Auto-tiling, giving you a free-floating window in a tiled workspace.
Fractional scaling returned in full force, allowing users to adjust the scaling of their OS in smaller increments.
Pop!_OS continues to journey down its own path with the release of Pop!_OS COSMIC (Computer Operating System Main Interface Components). COSMIC focused on user freedom; users could now navigate the OS with their mouse, their keyboard, or their trackpad. Additional customization was available on setup, such as customizations for the dock and the top bar.
With a simple press of the Super key, the launcher provided access to applications, files, the calculator, the terminal, and specific Settings menus. Meanwhile, trackpad gestures and tiling with the mouse brought 20.04’s streamlined workflow to mouse-centric users.
The OS & Recovery panel was added in Settings as a location for users to upgrade both their OS and the recovery partition.
The Application Library arrives! What was once a fullscreen app drawer is now a small, searchable window over your workspace.
A version of Pop!_OS 21.10 was made available for the Raspberry Pi 4. Pop!_Pi was made for tinkerers to explore the OS and learn different aspects of the software, both front-end and under the hood.
Welcome to the present, where we’ve optimized performance with the System76 Scheduler. The System76 Scheduler directs your system’s resources to the window in focus—so if you’re doing something intensive like gaming in full screen, you’ll get a much smoother experience.
Optional automatic updates optionally give users an option to schedule a day, time, and frequency when their computer should perform an update. This is something we believe the user should have control over; mandatory updates were not an option for us.
A Support panel was added to Settings to give users easy access to helpful online resources.
Lastly, we’ve implemented Network Time Security into Pop!_OS, to be enabled by default. Network Time Security (NTS) is an important security upgrade to the Network Time Protocol (NTP) that most computers use to set their clocks. It eliminates the possibility of security and denial-of-service issues caused by someone remotely tampering with the time on your system.
Pop!_OS 22.10…won’t be released :)
Over the years, we’ve aligned Pop!_OS’ release schedule with Ubuntu’s release schedule. However, with the engineering on COSMIC DE in full force, we’re changing things up this year.
To rephrase Pop!_OS Engineer Michael Aaron Murphy’s reddit post, because 22.04 is an LTS (long-term support) release, it will continue to receive essential updates for the next two years. This gives us time to direct our development resources towards rebuilding Pop!_OS in the Rust codebase, a programming language that’s faster to process, more secure, and more stable. We’ll also be building new software elements and refining the user interface.
Rebasing Pop!_OS to 22.10 would eat up a large chunk of development time, and would continue to serve as an obstacle through the next LTS release in 2024. Keeping our attention on COSMIC DE feels like the right move for us now.
Pop!_OS with COSMIC DE
COSMIC DE is an in-house desktop environment—the visual interface of your OS packaged from software elements like workspaces, windows, toolbars, and icons. Basically, a desktop environment (DE) is the bits you can see.
As we’re rebuilding components of GNOME DE in Rust along with other improvements and refining, it’s a great undertaking. We’re expecting to have an internal alpha sometime in 2023 and a public alpha soon after—but expect delays.
The official release will come…when it’s ready. Until then, we’ll be testing, re-testing, user testing, and ironing out the details. If you have any suggestions for us in the meantime, tell us about them! Follow and tweet at the @pop_os_official account. We’ll be keeping an ear out for you there!
And it’s all for you!
Thank you all for helping us achieve five wonderful years of Pop!_OS. We couldn’t have gotten here without you, our wonderful user, as well as all the incredible, talented developers across the Linux ecosystem. We hope our work inspires you to unleash your potential, whether that be developing a new machine learning program, bringing the next form of air travel to the masses, or growing Linux’s power and reach to epic proportions. Thanks for sticking with us, and we can’t wait to show you what’s in store for the next 5 years of Pop!_OS!