Qtile, Lazy Manufacturers, and a New Year's Query

Hey everyone,

I was planning to drop a post today about my new Engine Watchdog script, but I’ll save that for 2026 (tomorrow). I got sidetracked fixing an annoyance in my daily driver: Qtile.

Still My Favorite WM

I run a multi-monitor setup, and I noticed Qtile was struggling to distinguish between my displays. After digging into the code, I found the culprit: lazy hardware manufacturers.

The Bug: "000000000000"

Qtile tries to be smart. It looks at the EDID information from your monitor to get a unique Serial Number. This is great because if you unplug your monitors and plug them back in, Qtile remembers which one is which.

The problem? Some manufacturers just hardcode the serial number to 000000000000 for every single unit.

When Qtile sees two monitors both claiming to be Serial #0, it assumes they are the same physical device, even if they are plugged into different ports and showing different things.

The Fix

I submitted a PR today that forces Qtile to sanitize these inputs.

  1. It strips whitespace from the serials (because some vendors pad them with spaces).
  2. It explicitly checks for the 000000000000 pattern.
  3. If it sees that garbage serial, it ignores it and falls back to identifying the monitor by its geometry (resolution and position) instead.

If you are a Python dev or just curious, you can check the diff here: PR #5743

A Question for You

Before I sign off for the year, I need a quick sanity check from my readers.

In my recent posts (like the MongoBleed one), I’ve been including a "Layman's Terms" section where I break down the tech using analogies.

  • Does this help you?
  • Or does it feel like I’m talking down to you?

I want this blog to be useful, not condescending. If you prefer I stick to the raw code and technicals, let me know in the comments.

Happy New Year! See you in 2026.

As always,
Michael Garcia a.k.a. TheCrazyGM

0.05740851 BEE
5 comments

I'm a tech guy with a Software Engineering college degree and AI post grad courses, also lots of hardware experience over the years. But things change fast and I don't always keep up with the latest ways of doing things. So I am fine with both the simplified and detailed explanations. Thanks for all you do! Happy New Year!

!ALIVE !BBH !UNI !PIZZA !LADY

0.00041599 BEE

View or trade LOH tokens.


@kenny-crane, you successfully shared 0.1000 LOH with @thecrazygm and you earned 0.1000 LOH as tips. (2/10 calls)

Use !LADY command to share LOH! More details available in this post.
0.00040767 BEE

I appreciate both ways of explaining more technical information. I usually understand the raw tech way of expressing it, and the simplified analogies to help clarify that understanding. I don't know why, but the image that you published in this post isn't showing up. Anyway, I hope that you have a wildly wonderful New Year, my friend! 😁🙏💚✨🤙

0.00040205 BEE

It was an svg. It may not be supported on the frontends.

0.00013482 BEE

Ah, OK, yeah, that's likely the reason. It's curious that it allowed you to upload it if it was in an unsupported format. 😁🙏💚✨🤙

0.00000000 BEE

I'll take all the easy to understand non tech explanations I can get! 😂

0.00039952 BEE

PIZZA!

$PIZZA slices delivered:
@kenny-crane(2/10) tipped @thecrazygm

Learn more at https://hive.pizza.

0.00039149 BEE

As a non-technical type, I really appreciate the explanation of terms and simplified explanations !

Happy New Year, and keep up the good work 😀

0.00000000 BEE