A Young lizard

This post is to announce an important update to qtile-chameleon. I have decided to move the project from Debian to Arch Linux.

When I started designing qtile-chameleon I was making an effort to switch from an Arch Linux based distribution of Linux to a Debian based distribution, Pop!_OS. I noticed I had considerably more trouble installing Qtile on a Debian based system and I desired to automate the process. That was one catalyst for the install script. I was automating all the little things you need to do to get Qtile running on a Debian based system.

The Problem

Unfortunately this isn’t the best way to do things. Moreover, the diversity in the Debian ecosystem made it hard to ensure it would work on every Debian based system the same way. For instance, the difference in package availability between Debian stable testing and unstable is significant. Additionally, there are many Debian derivatives that take packages from Debian upstream like Ubuntu, and their derivatives. In the end, it becomes impossible to target a broad range of systems with one script.

The solution

Fortunately the problem has been taken out of my hands. Recently Ubuntu and Debian have announced that they will likely no longer allow pip the python package manager to be run outside of a virtual environment in upcoming versions. This will inevitably break the qtile-chameleon install script for Debian as is. So thinking forward I have decided to retire the Debian version of the qtile-chameleon install script, and consider a redesign after the release of Debian 12. In the meantime you can still install the setup on Debian albeit manually.

A new Architecture?

In order to move forward with the project I needed to choose a different Linux distribution to target. I didn’t want to deal with the variation and limitation in package availability I had found in Debian. So I switched from my still target of Debian Stable to a moving target of Arch Linux.

There were plenty of reasons I had previously discounted Arch as a viable option. One big reason being ease of use. There was a time when installing arch took the better part of a day to install depending on your network connection and level of understanding. This is no longer the case if you use the archinstall script. It is the fastest net-install of Linux I’ve ever done. The other reason I was averse to Arch was stability. However I have been on Arch via Endeavour OS for nearly half a year now with no major issues.

So with my apprehensions resolved I started to look at the benefits of moving the project to Arch. For one I wouldn’t be relying on pip for the necessary packages to run Qtile. They are already in the arch repository. Secondly I would no longer need to manually install an Xsessions file for Qtile. The Qtile package in Arch automatically sets up a session file for both X and Wayland display managers. These improvements make the script more conventional. But, most importantly moving to arch makes it easy to target every arch system that uses the Arch standard repos’. Arch is more monolithic and arch based systems are more uniform because of the rolling release model.