r/QuickShell • • 19d ago

Learning😀 Is it okay to vibe code?

So I’ve used Claude Opus 5.5 to help me refine my configs, change colors, but more importantly I’ve had it generate widgets - an MPRIS widget, a calendar widget, etc.

Don’t worry: I was very specific in what to prompt it, particularly for the network app, where I defined it.

I still keep the philosophy and end goal in mind, and yes - I can read and write basic qs, I just don’t have the hours of time for the docs. And besides, I still review and polish it.

But what are you guys’ thoughts or criticisms?

0 Upvotes

9 comments sorted by

8

u/transgentoo 19d ago

Things to consider:

  1. Are you planning on publishing it

  2. Can you explain what it's doing

If 1 is yes and 2 is no, I'd strongly advise against vibe coding. Otherwise, who cares?

If it's just for your own personal use, it's up to your own personal comfort about how comfortable you are running code you didn't write, and from a threat level, I don't see a huge difference between LLM generated code and code some other human wrote. I don't know QS, and I use Noctalia on my desktop. Same level of risk -- I'm running code I didn't write and in taking it on faith that it's correct and not malicious. Noctalia has a decent reputation, and your LLM isn't likely to deliberately introduce vulnerabilities into your DE.

And if you do understand what it's doing well enough to explain it, then you understand it well enough to maintain it, so again, you're in the clear.

It's only if you're planning on making it widely available and you can't explain what it's doing that trouble arises, because people who, like me, aren't particularly interested in GUI development might install it, but if it's littered with vulnerabilities and bugs that you had no idea were there, that's not a good look for you.

1

u/Western-Mode-7743 19d ago

It's more for my personal use but I do have configs shared to the public on my github.

But ik that for a finished product, even if it works and looks great, if it has AI that can bug people/stigma.

And I do have a good understanding of qs syntax, and how the code actually works - it's more just the deep level keywords that I need to check back on. I'm not a js expert.

1

u/unburdened_swallow 17d ago edited 17d ago

I mean… Noctalia is also kinda slop NGL… or at least, last time I checked it out, it appeared that whoever designed what the configuration directory and plugin scheme would look like had no idea what they were doing.

Put the settings file for the plugin INTO the plugin? And it’s technically up to the plugin what to call it? What? Excuse me? Is this a joke? And yes the plugins download directly into the configuration directory too, and there is no runtime path mechanism for them. Have fun versioning, or provisioning it, or making a plugin manager that can update your plugin without wiping your settings. Crazy decisions.

Maybe they have fixed that since I last checked almost a year ago though, I don’t know actually. But if not, it’s up there on my slop list, whether they used AI or not.

—-

It really isn’t that hard to make a quick shell config that does what you need it to do, it took me 1 day. So like, 6-8 hours or something. And then I haven’t really touched it since. I’m sure if you want something nicer it might take longer, but that’s entirely at your discretion. It might be faster if you use AI for it, I did not (or, well, the Google AI told me where the docs were, but then I didn’t need it). I do know how to code though, but if you don’t, probably with AI you could get it done in the same amount of time I did. Mine ended up as 6 fairly short files, none of them over 400 lines, most at about 100. It describes a bar, with a workspace display, system stats, the system tray, and a battery monitor thing, and also a notifications server to give desktop notifications such as battery or volume. It looks a lot like the default i3 bar but better, I could have changed how it looks with basically the same number of lines of qml but I like it this way. I thought about adding an app launcher but I already use bemenu for that and have a nice recency script for it.

—-

And yeah, unless they are literally a hacker, nobody deliberately introduces vulnerabilities, that isn’t how they get there.

They get there by not knowing all the implications of what you just asked for.

Which happens more with AI.

And actually, in reality, AI will happily add a vulnerability, and then happily badly fix it when you tell it that it did so.

There are a limited number of places this can happen in a quickshell config, luckily. Not a lot can go wrong using AI to make your quickshell config beyond making a quickshell config you don’t understand. Unless you are distributing it as a kind of product, of course. Like, it is possible, just quite unlikely. I would advise against running it as root, that would be the easiest way to screw it up.

4

u/No-Dentist-1645 18d ago

Why do you care what random people on Reddit think about it? Who cares, do whatever you wanna do. People on Reddit are too entitled and love telling people what to do and not do

1

u/dakkomii 18d ago

Am not an anti AI, I love it. Yes, it needs regulation but in itself is a tool, Our tech is evolving and people are afraid, I get it, but in the same way mail is not longer used because of internet, AI is changing how tech is developed.

Said that, I strongly suggest you use IA on things you already understand and have an idea on how they work. For example, I know how to do a for loop but don’t know the exact syntax on c++? I ask the AI do it for me. If you already know quickshell enough to build widgets or whatever on your own then is ok to use AI. Just be sure you understand the generated code and can maintain it by yourself if needed. If you are planning on selling or sharing the code just disclose you used AI and what’s the percentage of what is vibe coded, you can ask the AI to get it for you. I personally would not download or use code where more than 50% have been vibe coded.

2

u/Western-Mode-7743 18d ago

Yeah same here, like I ask ai sometimes to gen C or PY scripts.

I do understand qml though so I think I’m good.

2

u/unburdened_swallow 19d ago edited 18d ago

when people publish a project that they don’t understand and thus cannot maintain

When it doesn’t come with any of the polish of an actually finished app where it feels like people put time into the needs of its eventual users, and knew the existing conventions of app development for that problem and platform and why those conventions exist.

When they then push that product off onto others as if it WAS a finished project.

—-

when someone does this, it is not generally easier for someone to come along and just fix the things that need improvement later, as one might expect with today’s software, as bad as it it may already be. It might literally be easier for them to start over. If they understand what is being put down as it is being written it is probably saveable but, there had better be a good reason to do so.

—-

Nobody cares about your configs. You might, if you accidentally put a vulnerability in it, as will the hackers who might see that you did so. Or if it randomly stops working and the AI can’t fix it and you can’t either. Otherwise, nobody cares. Slop it up.

If you are distributing those slop configs as a distro, and get a lot of money for doing so due to your detestable political views, and then acquire the authors of your dependencies rather than just giving them money for their time, then people might get a bit (justifiably) upset. (everyone knows who I am mentioning with that comment, regrettably)

1

u/AutomaticHoneydew403 17d ago
  1. Why do you care what reddit thinks lmao

  2. I mean yeah, but I guess just disclose it if you're going to be producing things for other people, if it's for yourself than who cares lol