I “vibe coded” a Linux application into existence.
When I spoke with a hiring manager on the phone a few weeks ago, he suggested that I dip my toes into the AI waters, maybe take one of my coding projects for Diamond and rework that with AI assistance.
I went in a different direction, taking a Linux Mint application from 2008, written in Python 2 for the GTK2 framework, and rebuilding it in Python 3 for the GTK3 framework.
The application, mintDesktop, did four things:
- Turn system icons on the desktop on or off
- Changing folder opening behavior
- Turning the compositor on or off
- Replacing the splash logos on two apps with custom Mint variants
Before I did anything, I did my research. I read up on GTK3’s box model to gain some familiarity with how it worked for building an UI. I read through mintDesktop’s Python 2 source code to gain an understanding of what it did and how it did it. I worked out the gsettings commands I would run in the terminal to do almost everything mintDesktop did.
Rebuilding mintDesktop doesn’t solve an unmet need. Its first two functions — desktop icons and folder behavior — are handled in other apps; Cinnamon (the desktop environment) has a Desktop app where icons can be turned on or off (and, desktop minimalism time here, mine are set to off), and folder behavior can be changed in Nemo, the file manager. Mint hasn’t shipped with custom splash logos since version 6 in late 2008. And graphics technology has improved by leaps and bounds, so turning the compositor off doesn’t make sense in 2026.
Why rebuild it, then? As James Tiberius Kirk said in 2285 when freeclimbing El Capitan, “Because it’s there.”
Over four days, I worked with ChatGPT on building this application. I have some programming knowledge — Lance Woods and Vince Brusio can tell you about some of my VBA code for Diamond because they used it — and I wanted to get my hands into the code so I could understand what was going on.
ChatGPT acted as a guide at times, a prototyper at others, and the final is probably 70% ChatGPT code and only 30% mine. The project was tackled in stages, first how to build a GTK3 app in Python, then how to construct a UI, then how to connect it to the system. There were conversations that ran, “I think my bug is here, what did I forget or overlook,” and it would point out what I missed and I would go back and make corrections in the code. There were times it wanted to do something that I had already done.
The result? An application, built in 2026 with modern tools that recreates an application written at the dawn of my Linux experience.
I may not do anything more with this project, but I learned some things and got my hands dirty with coding, and that’s enough.




Edited to add: I made some quality of life improvements, and these I coded myself after asked ChatGPT how do I check which desktop environment is running from Python. Once I had that, then I could implement a couple of features.
Linux Mint, in the main branch, ships with three desktop environments — the flagship, Cinnamon; XFCE; and MATE. Under the hood, Cinnamon and MATE are similar, as they both are descended from GNOME, Cinnamon from GNOME 3, MATE from GNOME 2. It occurred to me that if I could determine which environment was running and set the gsettings schema based upon that, then the program would work interchangeably with Cinnamon and MATE.
Then, if I weren’t running either Cinnamon or MATE, I could disable the two pages of the notebook where the desktop icons and the file manager settings are changed.
I could even change the name of the file manager settings page — “Nemo Settings” if running Cinnamon, “Caja Settings” if running MATE.
ChatGPT told me how to check, and I ran from there and implemented these changes.
Then, I decided to wire in a bash script I had written to test the application, a script that reversed the custom splash logos and restored the original splash logos for GIMP and LibreOffice. And I coded in functionality so that when the button to restore the logos is checked the buttons to change the logos are unchecked and vice versa.

This brings my code contribution to the project up to about 45%, and it makes it more functional. If it’s running in Cinnamon and MATE it has full functions, and if it’s running in something else the application hides the functions that aren’t applicable.
This turned our well. It’s completely unnecessary, yet I feel a visceral thrill when I open GIMP and I see that vintage green custom logo. 🙂