← Back to context

Comment by tombert

14 days ago

I had a lot of fun overengineering the hell out of the status bar in Sway recently. It was something that I got working in fifteen minutes in Bash, and then ended up rewriting in Clojure, then figuring out how to get working with GraalVM, and then just kept adding features and making it more customizable.

None of this was that hard (outside of making it async-friendly, that was a little tricky), but it also wasn't trivial. I had Law and Order on in the background, and I hacked on it for a few days, and it did kind of get me into a "zen state". Figuring out how to make the code more flexible and figuring out which features I can feasibly add was relaxing.

I think part of it was that there's really no consequences to this. If I screw something up, no one is going to be mad at me, no one is going to yell at me, I'm not going to get fired, and I'm allowed to go off onto any tangents that I would like because I'm just doing this for fun. It doesn't feel like "work" because "work" often involves me working on stuff I don't want to work on. If something is too frustrating, I don't have to go through approvals and legal to import a library that does it for me. I can spend as much or as little time as I'd like writing documentation. I can micro-optimize or not-optimize however I'd like.

And fundamentally, if I screw something up, it's the text on the Swaybar, it's really not the end of the world.

It can be tough to find a project that holds my interest enough to get into this. I tend to have the most fun working on stuff that is completely unimportant, because if I'm not trying to change the world, then I can be as creative as I like.