Qtile Chameleon
A pet project
qtile-chameleon is a pet project of mine. It started quite a long time ago. It’s a config file for Qtile, a home page for FireFox and a bunch of shell scripts to tie it all together. My goal was to make Qtile my primary productivity tool. Moreover, I wanted a clean utilitarian work environment with a cohesive aesthetic.
So I set out to create a dynamic environment that changes along with my wallpaper. I look at this like creating a frame for a painting. Most importantly, the frame should always compliment the painting.
Technicolor Config Files
Pywal is an excellent python program. It creates color pallets from image files. Pywal is maintained by Linux customization guru Dylan Arapas. Dylan is the creator of the KISS distrobution, neofetch, and plenty of other projects.
The Qtile config uses the json file generated by Pywal to adjust the colors of the bar and window decorations. The config file is suited to darker images or very chromatic ones. Light images or images with little saturation do not work as well.
Qtile Config
qtile-chameleon uses three default layouts zoom, monocle, and binary space partitioning. It has a number of built in clickable widgets. These widgets do things like open audio settings, calendar, system monitor, and network manager front end.
The config uses a drop down quake like terminal. It’s handy for doing things like managing terminal applications. For instance, things like ncmpcpp for music, castero for podcasts, newsboat for RSS etc. You can start it up and go back to what you were doing without an extra window impeding your workflow.
There are nine workspace groups represented by Roman numerals. I use about four or five of the groups when my desktop is cluttered. If I make use of the zoom layout I can get by with one.
Hotkey graphics were generated with this script from the Qtile repository.
Scripts
Scripts control some parts of the Qtile setup. One script called walp sets the wallpaper at startup from a randomly selected file in ~/.local/share/backgrounds. Another script called bar toggles the visibility of the bar at the top of the screen. This saves an extra 24px. It declutters the interface as well. Some of these scripts call notify-send. Notify-send tells the notification daemon dunst to display messages such as my hotkeys or system temperatures.
qtile-chameleon uses a number of scripts for Rofi. Rofi is an extensible command launcher. It can preform a myriad of tasks. I started tinkering with Rofi’s extensibility after finding Cramer Marius’s rofi-scripts repository.
Rofi is useful for things like switching between audio outputs, and setting timers. Furthermore, Rofi makes things like taking screen shots with scrot, power management and managing the clipboard easy. It can switch active windows, or launch you favorite applications. Rofi can even launch ssh sessions and virtual machines.
Start Page
My start-page for FireFox is designed to compliment my Qtile config. Likewise, It displays the currently active wallpaper as the background. The startpage is styled with Pywal’s automatically generated CSS template. It randomly displays a message as well as the date and time. The start page also displays categorical lists of my most visited sites. I used furycd01’s min-startpage as a starting point. Then over time I redesigned it to be cohesive with my window manager.
GNU/Qtile
I used Linux for years as a desktop operating system before I finally realized its true potential. I spent time with many free and open source applications. However, I never deeply tinkered with them.
It was when I started using Qtile. I realized that the utilities in Linux are incredibly powerful. It was through solving problems created by the bareness of the environment I realized why people loved UNIX. Why Linus and so many others endeavored to recreate it from the ground up.
With shell and python I found that anyone with a sense of logic can create programs. Programs that will make their life easier. I experienced the freedom my operating system provides me to do whatever I want.
I’m a designer not a programmer. My mind works in an abstract way. In stark contrast to the mind of someone who makes programing their passion. However, this project has given me the confidence to be more technologically self sufficient.
My grandfather always said, “Do something even if its wrong.” Many problems in computing are left unsolved. In part because the majority of people don’t have confidence to solve them. Moreover, People think that their tech is more fragile and complicated than it is. This mentality disempowers the users. In conclusion, I would encourage everyone to make a good backup, and make their computer their own. The result can be satisfying.