LLMs and xfwl4 –
Brian Tarricone
LLMs and xfwl4
Posted on July 27, 2026 at 21:08 in<br>ai, llm, oss, software, wayland, xfce, and xfwl4
I was planning to write a little about my usage of LLMs while building<br>xfwl4 as a small section of a<br>larger blog post, but I decided I’d rather get it out of the way on its<br>own.
While LLM usage can be polarizing in the context of open source, I don’t<br>really see it that way. It’s a tool, like any other. It has good parts<br>and bad parts. On the bad parts, there are three things that stick out<br>for me:
Training Data and Copyright
Among other sources, LLMs were trained on publicly-available data,<br>without the permission of any of the rightsholders of that data. That<br>especially smarts since I have a lot of open source code out there, much<br>of it licensed under the GPL. Is training an LLM on my code copyright<br>infringement? If someone gets output from an LLM that looks<br>substantially similar to my code, and they don’t know and don’t follow<br>my license terms, is that copyright infringement?
And if it goes the other way, if output I get from an LLM looks very<br>much like someone else’s code, did I infringe on their copyright?
I’m not sure! US law seems to suggest that training is fair game, as<br>long as the entity doing the training has legal access to the data<br>they’re training on. As for the rest of it, I’m not sure that’s legally<br>settled yet.
On top of that, it sometimes feels icky that companies like OpenAI and<br>Anthropic are making money off of all this when all that data out there<br>– for which they mostly paid nothing – makes it possible.
I don’t, however, think the best response for myself is to just pretend<br>none of it exists. It’s a tool, and a useful one.
Environmental and Social Impact
LLMs need a lot of space, electricity, and water. Communities where<br>data centers are being built, along with the associated power plant<br>upgrades, are often getting stuck with some of the bill for those<br>improvements, which is disgusting.
The secret deals between datacenter companies and utility companies,<br>often with municipalities complicit, are often leaving regular<br>ratepayers out to dry. That’s a local problem, and I hope those local<br>people vote in representatives who will take better care of them.
Supply Chain
I don’t need to remind anyone how expensive GPUs and RAM are right now.<br>I was planning to upgrade the mainboard in my laptop this year, which<br>would require new RAM (my current board has DDR4 in it), but the cost of<br>64GiB of LPCAMM2 DDR5 makes my eyes water.
The consumer RAM market has been hollowed out; several companies have<br>either stopped making consumer-grade RAM entirely, or have severely<br>restricted supply in order to make more money selling to datacenters and<br>AI labs. That’s capitalism at work for you, at the expense of regular<br>folks who need to buy computing hardware for personal use.
But here I am, with a Claude Max 5x subscription for the past year and<br>a half. I’m not comfortable with it, but the utility is just too great<br>for me to take a principled stance here. I like it, and I want it, so<br>I’m using it. Maybe that’s morally questionable, or worse. But, as I<br>said: here I am.
xfwl4 and LLMs
So yes, I use Claude quite a bit while developing xfwl4. I don’t<br>vibe-code, ever, and I probably use the LLM to generate less code than<br>most people do. After all, building things with code is my hobby and<br>passion (and I’m lucky I got to do it professionally for a quarter<br>century), and driving an LLM is kinda boring.
Research and Planning
Most of my time with Claude Code is research and planning. One great<br>match for LLM use here is helping me understand the finer details of<br>xfwm4, since xfwl4 needs to duplicate all of its behavior. One common<br>prompt of mine:
look at the xfwm4 source in detail and determine everything there is to<br>know about $FEATURE. write up a plan for how to implement it in xfwl4<br>to notes/$FEATURE.md.
I go do something else for a while, and when it’s done, I read the doc,<br>and then spend a while asking Claude questions about it, and telling it<br>the things I don’t like and what I’d like to be done differently, and it<br>updates the doc.
Implementation
Most of the time I’ll start working from the notes doc myself, writing<br>the implementation by hand. My guidelines for plan-writing to Claude<br>are to do things in phases, and so I’ll complete a phase at a time, and<br>then ask Claude to validate what I’ve done. Often, while I’m working,<br>I’ll decide to deviate from the plan, and I’ll have to tell Claude to do<br>the validation based on the outcome I want, not based on adherence to<br>the plan.
Once it’s done, I’ll use /code-review and let Claude spawn sub-agents<br>to do a full review of the new code. This usually finds some problems,<br>even problems that the “main” Claude instance didn’t find during its<br>validation. I usually keep running /code-review again and again after<br>finding and fixing issues, until there aren’t any left. I actually<br>haven’t been doing /code-review for very long,...