With Solus seeming to go from strength to strength along with a recent big release, it was time to sit down and have a chat with one of the team about the Linux distribution.
GOL: Could you please introduce yourself?
"Hello, my name is Joshua Strobl. I am an open source developer, coffee addict, and avid gamer. I have been using Linux since 2008 and have been involved in a wide range of open source projects and initiatives."
GOL: How did you get into coding?
"Of all things, I got into "coding" in the early 2000s with the popularization of personalizing your MySpace profile with HTML and CSS. From there, I went on to learn more about web development and server-side languages like PHP, gradually moving to lower level languages as the years have gone by.
It was not until 2008 when I was exposed to the Linux ecosystem. My laptop, which I had gotten for schoolwork primarily, shipped with Windows Vista and constantly blue-screened. Tired of losing out on my schoolwork, especially in the middle of class, I literally typed "free operating system" into Google and the first hit was this "Ubuntu" thing (it is a little known operating system you might have heard of). This was back in the day when there was a program for shipping live CDs, so long as you exercised some patience. After a week or so, I received my Ubuntu 8.04 live CD in the mail, promptly backed up my important files, and nuked my Windows installation. I have been using Linux-based operating systems as my primary operating system ever since."
GOL: Tell us a little bit about your work with the Solus Linux distribution.
"I have been working on Solus for almost 6 1/2 years now and part of the team since its formation in the early EvolveOS beta days. As the Experience Lead for Solus, my primary responsibilities are:
- The development and support of the Budgie Desktop and GNOME (Shell) experiences.
- Development of a subset of our tooling and infrastructure, alongside engaging with other team members to develop internal specifications on tooling and various systems with Solus that they undertake.
- Performing normal day-to-day operations involved in the development and maintenance of an operating system, such as patch landing, software stack upgrades, etc."
GOL: How did you get involved with Solus originally?
"I originally got involved in Solus back in early 2015 just shortly after the release of EvolveOS Beta 1. Budgie was the initial attractor for me to check out EvolveOS, with Budgie 8 recently gaining popularity thanks to its ChromeOS-esque look and feel. EvolveOS' focus on a single architecture (we didn't even have support for emul32 / multilib back in those days) and being built from scratch for home computing was the reason I stuck around.
If people think Solus has "few" packages now, it really pales in comparison to the package available on EvolveOS at that time. It lacked my favorite IDE of the time, had no Mono and thus no Keepass so I couldn't even open my password database, and everything was hosted in a monolithic GitHub repository. But instead of just jumping ship to another operating system, I tried my hand at the brand new YAML-based packaging format to package the software I needed.
It was this initial packaging and the feedback loop with the project founder that made me feel I could make a meaningful impact on a project that shared the same passion as me, which was building an excellent desktop-focused operating system. I have been with the project ever since!"
Pictured - the various Linux desktop environments available for Solus
GOL: Solus also comes with your “flagship” desktop environment Budgie, that you (and others) work on directly. What advantages does Budgie have over other desktops? Why should people think about using it?
"The overarching goal of Budgie is to provide a focused user experience that out-of-the-box balances a traditional look and feel with modern features / functionality, the chief example being our centralized widget and notification center "Raven". With Budgie, we strive to provide an experience that gets out of your way and lets you focus on the task (or game) at hand, without all the gaudiness of excessive animations and a user flow that is less aimed at tablet usage and more towards the desktop.
People should consider using Budgie if they are looking for a lighter weight desktop environment to GNOME Shell that complements their GTK-based applications and not just provides them the flexibility to personalize it how they like (whether that be maintaining the "traditional" look and feel or experimenting with our applets and panel configuration), but encourages that personalization as well."
GOL: Why do you think people should choose Solus for their desktop Linux needs?
"Solus is an operating system that is designed for modern home computing devices exclusively. On the surface, no matter what desktop edition you choose, our goal is to provide you a sane out-of-the-box user experience, ranging from theming, to extensions on our GNOME Shell edition, to Brisk Menu on MATE and the curation done by Pierre-Yves (our MATE maintainer), and all the excellent work Friedrich von Gellhorn (our KDE and Plasma Maintainer) does for Plasma.
Underneath the hood, we focus on optimizing libraries and software specifically for the x86_64 architecture, with many of our packages being built with AVX2 support, Link Time Optimization (LTO, thin-lto or otherwise), profile-guided optimizations, speed or size optimization levels, etc. This all culminates in faster day-to-day usage, ranging from our optimized standard C lib (glibc) to faster web performance in Firefox.
All of this is delivered through a stream of updates via our "weekly sync" process, where new packages from our unstable repository are deployed to our stable repository every Friday. We strike a balance between system stability and providing users the "latest goodies", occasionally deferring our sync to at most another week for large software stack rebuilds (e.g. glibc) or holding off on upgrading a part of our software stack on new major releases (e.g. for mesalib). With this development model and curation, users never have to wait until the next release of Solus to get the latest kernel, stable channel releases of various programming languages (such as Rust), or major release of their favorite software. You install Solus once and just keep updating, no "dist-upgrade" required."
GOL: If we have this right, Solus isn’t based upon another Linux distribution. Like you have Linux Mint based on Ubuntu, Manjaro based on Arch Linux and so on. Was there a reason it didn’t take the base system from another?
"Solus being an independent operating system enables us to make decisions and establish priorities that best fit our use case, our user base, and our mission without needing to take into consideration an upstream like Debian, Ubuntu, Fedora, and so on. We are able to deliver updates to our users on a weekly basis, without concerns of many applications or aspects of the software stack being pinned to older releases due to the release model and process of an upstream.
Any complications when needing to work with an upstream operating system or supersede an upstream's decisions are eliminated, such as their support for multiple architectures (e.g. some ARM architectures or PowerPC) and form factors not relevant to home computing (e.g. mobile or server) to any decisions they make on adopting new software (e.g. Pipewire, Wayland, new systemd features)."
GOL: We’ve seen people comment on Solus having a smaller set of packages, and there’s been some interesting debates on that with people mentioning things like Snap, Flatpak and more. What are your thoughts on it?
"I understand that many Linux users, especially those on Arch, are used to having more-or-less limitless availability of software at their disposal. This has the obvious benefit of enabling the user to more actively experiment with just-released software without direct knowledge of how to compile software (which is great) however this software may not always be well vetted, integrated, or maintained. Our ways of reducing the likelihood of the end user coming across software in our repository that is any one of the pain-points I mentioned are:
- Our process for requesting the accepting and possible inclusion of software, which reduces the overall workload for the Team and increases the likelihood of on-boarding new package maintainers.
- Our Package Inclusion Policy that sets forth criteria for a package to be accepted for inclusion, as well as clear points where software may be rejected (for example, if it is considered dead-on-arrival, has no formal stable release, is mobile or server-focused software, etc.).
- Requiring that all packages have a dedicated package maintainer (for the last couple years) responsible for ensuring the package is kept reasonably up-to-date, is well-integrated with the desktop and rest of the operating system, and comes with sane defaults.
For software which we cannot redistribute, we do have our Third Party mechanism, which repackages software such as Google Chrome into an eopkg that is installed on the user's system, and we do support both flatpak and snapd as you mentioned. We believe both of these are great alternatives to acquiring software that are not otherwise in our repository and in our planned rewrite of the Software Center you will be able to acquire and manage software from these distribution methods graphically."
GOL: Solus now gets funding via Open Collective and it looks like you’ve hit close to $10K per year. How is that going, is it slower than you hoped or about where you expected? Any plans for other ways to pull in funding for Solus?
"The entire team is absolutely blown away with the level of financial support we have gotten thus far. Bryan Meyers (Technical Lead of Solus) and I have been personally paying for the expenses of Solus for about 3 years now, so even getting to the point where infrastructure costs can be covered by our OpenCollective is incredible, absolutely zero complaints from me on that one.
Naturally, our goal is to be able to work on Solus and its software full-time in the future, whether that be Budgie 11, new installer, new software center, build tooling, and more. Once we are able to hit around the 2000 USD per month mark, it will be realistic for me to begin working full-time (in addition to our infrastructure costs being covered). The next objective would be getting Bryan working full-time.
In terms of fundraising or other avenues of revenue, there is not any specifics we are looking into at the moment. However we are constantly listening to feedback from our community and would love to hear ideas from folks. Having done some fundraising myself via my Patreon and Twitch, I am not shy about doing silly things like a financial goal that results in me getting my hair dyed. I'm game. Just not dressing up like a maid. I have some limits."
GOL: What do you think are some of the big remaining hurdles for getting Linux into more peoples hands?
"One of the biggest hurdles involved in getting Linux into more peoples hands revolves around elevating system integrators and vendors which support and/or are incentivized to support Linux-based operating systems pre-installed. I think we all recognize that this is a chicken-and-egg problem however, with many vendors not being incentivized due to either lack of market demand or an aspect of the user experience they do not believe would be up-to-par with their customers' expectations.
To raise just one point of common user frustration, I will not be confident enough to ship any Linux-based operating system to your average computer user until we get to a point in time where 99% of the issues that user would face could be resolved through a graphical troubleshooter experience. If there is any point in time where they are forced to open up a terminal to remedy an issue, the battle is probably lost. This is one of the places where Windows does exceedingly well, even with its Startup Repair system. If configuration or update management issues can be solved graphically and a Terminal is only really desired by advanced users, I believe vendors would be more confident in providing it as an alternative installation option."
GOL: Let’s talk about Linux gaming. I’m sure plenty of people do it on Solus. What are your thoughts on how far Linux gaming has changed in the last few years?
"In my opinion, the real turning point where things started to improve was back in 2012 with the release of Windows 8. Its release and the Windows Store model was so catastrophic and concerning that Valve's active development and financial investment in building out its own platform on top of Linux significantly accelerated the possibilities of AAA gaming under Linux. It was this investment that set the example for other major game engine developers in the industry like Epic Games and Unity Games to start taking Linux more seriously.
While those coals may have cooled some since, porting to Linux has largely remained approachable to developers using these more democratized solutions, with few good reasons to omit Linux as a platform. Software such as our own Linux Steam Integration used to be more necessary to maximize the likelihood of a ported gaming even launching under a modern system without Steam's old Ubuntu runtime environment, and nowadays we have brilliant ports by folks like Aspyr Media, Feral Interactive, and Paradox Interactive that largely do not require it (though seriously Paradox, stop with custom launchers).
I mean, does anyone remember being absolutely over the moon when Borderlands 2 launched for Linux via Steam? Or the stream of good Sid Meier's Civilization ports? In the last few years, we went from ports feeling like a necessity to being in a place where we can use DXVK and Proton to sometimes thoughtlessly launch and play a game. Sure, some of them may require some supplemental work or you may not always get performance on par with Windows, but the fact we have gone from having a near-zero chance of launching the latest AAA game like Cyberpunk 2077 to basically shrugging that off and launching it with a few clicks, within a few years, is a pretty big deal.
Linux gaming has never been more approachable. You can more trivially play your Steam library thanks to "Steam Play", customize or install separate Windows games like Elder Scrolls Online via Lutris, and more easily manage your diverse multi-platform libraries through various game clients like Minigalaxy."
GOL: What do the Solus team do to try and make the Linux gaming experience better?
"I am actually quite happy that the work required by Solus is considerably less than it was years ago. Out of necessity Linux Steam Integration was more aggressively updated, with many new games shipping with outdated libraries that needed to be intercepted for newer system libraries. While we still use this system and may need to update it on occasion, for the most part our work centers around packaging.
Some examples:
- Ensuring Steam is well maintained and actively using our PGO/LTO/speed-optimized system libraries and software, even Steam beta releases.
- Continuing to expand on our "multilib" support (64-bit libraries with "32-bit" counterparts) for Steam and WINE.
- Packaging software such as ajour (a World of Warcraft addon manager), goverlay + mangohud for FPS, temperature, logging, and usage reporting, gamemode for optimizing gaming performance, gx52 for Logitech X52 HOTAS LED configuration, etc.
- Bundling software with other applications to provide for an out-of-the-box experience that is less complex. As an example, our Lutris installs cabextract, gamemode, and mangohud alongside it to expand Lutris' capabilities.
Of course, I think one of the best ways we can make Linux gaming better is by actually playing games, whether those are modern titles or otherwise. It is only then we can identify pain points and work to resolve them. I play a wide range of games, from popular MMOs like Elder Scrolls Online to World of Warcraft, strategy games like Sid Meier's Civilization, space sim games like Elite Dangerous with my Logitech X52, the almost 3000 hours I have in ARK: Survival Evolved, and games that Gaming On Linux has introduced me to like FPSes such as Splitgate."
GOL: Any thoughts on the recently announced Steam Deck that uses SteamOS 3 based on Arch Linux? Will you be getting one?
"I think that Arch Linux is a rather interesting choice for Valve and I would be curious to hear what specific reasons they had for going with it instead of building out their own on top of something like Gentoo (similar to Chrome OS). Personally, I am not likely to buy a Steam Deck since I am not one that frequently plays games on the go, but I am certainly thrilled to hear alongside their Steam Deck announcement that they are working on getting BattlEye and EAC supported via Proton. This is a huge boon for gaming under Linux and I cannot wait to finally be able to nuke my Windows install (only around nowadays for ARK: Survival Evolved)."
GOL: What are your plans for the future of Solus?
"At the moment, we are working on the next generation of our "ypkg" build tooling. ypkg v3 will provide us a more cohesive development experience by centralizing many of the utilities our package maintainers use on a daily basis. These tools, such as the generation of our YAML-based packaging format, have grown organically over the years as Solus and the rest of the ecosystem has continued to evolve. Alongside being written in Go (current ypkg being written in Python), ypkg v3 will feature a refined packaging specification as well as sub-architecture support to take advantage of glibc-hwcaps and varying AVX support.
Alongside this work, I have been working on familiarizing myself with the inner workings of GTK4 in C via Koto (an audio manager I have been developing, not specific to Solus). The lessons learned from this are being used to inform decisions for our new Software Center, Installer, and Budgie 11 -- all of which are being rewritten from the ground up to meet our needs and expectations for years to come.
Looking into the next few years of Solus, we intend to be in the position where we are building Solus in a manner that not only enables us to leverage more of the capabilities of your traditional x86_64-based processors, but opens the door to the possibility of being able to apply that same level of optimizations to other architectures as well. We will be delivering:
- A more modern desktop experience via Budgie 11 that keeps the balance between modern functionality and traditional feel by default, with an expanded range of personalization, window management capabilities, improvements to Budgie's architecture, and less reliance on various aspects of the GNOME stack. Unlike some in the Linux ecosystem, I do not believe that the "traditional desktop is dead" and "not coming back". I believe laptops and desktops will continue to be the workhorses of the computing industry, so it is my objective to make that experience as good as possible.
- A more robust two-stage installation experience with support for automated OEM imaging and more filesystems.
- A new Software Center that makes software discovery and management even easier for our users.
- A new package manager (sol) and package format.
We have some ideas and items across various areas of Solus we would like to act on over the several of the next Solus releases as well, even items we know will not be addressed for Budgie 11 that will be slated for 12. Plenty of work to do to keep us busy!"
GOL: For a developer or users interested in getting into Linux development, be it through applications, distributions, games or whatever else - any advice on where to begin?
"Regardless of what aspect of the Linux ecosystem you are interested in, the first step in getting started is to identify an aspect of the ecosystem that you are passionate about and bothers you the most. My biggest motivators have been a balance between passion and frustration, rarely do I find that I am able to contribute long term to solving a problem if there is not some overarching frustration I have related to it. My engagement in Solus was born from my original frustrations with desktop Linux computing. My engagement in the Linux ecosystem was born from my frustrations with Windows Vista.
- If some operating system you use has documentation that does not meet your expectations, ask politely how you can get involved and propose solutions which satisfy all parties.
- If you love a specific application but there is a specific bug nagging at you whenever you use it, clone the source code and just start messing around, even if it is just with modifying bits of the application logic. If it is missing or has inaccurate translations, ask for help in submitting corrections.
- If you are interested in game development, pick a game you play already that has a vibrant modding scene, download the tooling necessary to start experimenting (if any), and try to figure out how various aspects of the game or engine work, why certain decisions were made in the design of the game, how they could be improved, and so forth. Try reaching out to the developers or theorycraft game mechanics with like-minded individuals on forums. If you have been thinking about building your own game, this is a great way in my opinion to learn what concrete likes and dislikes you have that can be applied (or avoided) when you execute on your own game ideas.
You can live your life in the world of academia, theorizing how something might work, but no plan survives contact with reality. Applications, games, and operating systems can be exceedingly complex and a decision made might not make sense until you encounter the possibly obscure scenario where it applies, one which you would only come across when engaging in the first place. Nobody starts out as an expert and you will find the best way of learning is to just start doing. Don't be afraid to ask questions and don't be afraid of failure. Do not pay any mind to the nay-sayers telling you to not to build your own application or game just because something else might already exist that does something similar.
In the wise words of Shia LaBeouf…"
We would like to thank Joshua Strobl for taking the time to have a chat with us.
Do you want to be interviewed? Feel free to email us any time. Be sure to check out previous interviews.
A lot of the core ideas and principles seem to reverberate through the community and I think we can be proud of that last bit especially.
Nobody starts out as an expert and you will find the best way of learning is to just start doing. Don't be afraid to ask questions and don't be afraid of failure. Do not pay any mind to the nay-sayers telling you to not to build your own application or game just because something else might already exist that does something similar.
Having a attitude of seeing things in terms of "setbacks & "challenges" and being driven are critical ingredients in the recipe of success as a software developer & life in general. Infact, if you are not failing once in a while -- you are not trying hard enough. Failure is necessary to learn anything in life. Fear of failure is a defective mindset.
Last edited by ElectricPrism on 22 July 2021 at 11:18 pm UTC
Solus and budgie are amazing projects!
One thing that I would like to hear is about why they abandoned the idea of using Qt on Budgie.
Second, inspired by this interview, I'm going to commit myself to annoying everyone, breaking everything, and getting past the push-me-pull-you semantic congeries to finally figure out how to use Github to do more than report issues and suggest improvements. (Once I do that I'm gonna write a how-to-use Github for people like me.) ;)
(Once I do that I'm gonna write a how-to-use Github for people like me.) ;)Don't forget to put your Github guide on Github so that people can help you improve it.
Manjaro has been irking me of late and I used to enjoy Solus when I used it years back, may have to give it another go.I've been cutting Manjaro out as well....
(Once I do that I'm gonna write a how-to-use Github for people like me.) ;)Don't forget to put your Github guide on Github so that people can help you improve it.
I'm making a Solus guide and will be glad for any help
Thank you! GLHF!
See more from me