Kev Quirk https://kevquirk.com Proudly ruining the web since 2013. en Stop Ubuntu Resetting Your Icon Theme When Toggling Dark Mode https://kevquirk.com/stop-ubuntu-resetting-your-icon-theme-when-toggling-dark-mode https://kevquirk.com/stop-ubuntu-resetting-your-icon-theme-when-toggling-dark-mode Tue, 28 Apr 2026 14:55:00 +0100 The Papirus icon theme is my favourite - I've used it for years and it continues to work beautifully. So while I've been rebuilding my Framework 13, it was one of the first things I installed.

But there's a problem, dear reader. You see, I'm a proud light mode person, but I regularly switch to dark mode when working in the evening. However, Ubuntu has this silly bug where it switches back to the default Yaru icon theme whenever one switches between light and dark mode.

Annoying.

On my previous machine I had a cronjob running every minute that simply checked the theme and switched it to Papirus if it was Yaru. That worked fine, but wasn't the most elegant solution.

So, this time I did more research and came up with a slightly more elegant fix workaround.

How to "fix" it

Ok, it's pretty simple. It consists of a small script that runs whenever Ubuntu flips between light/dark mode, then 0.2 seconds later, switches the icon theme back.

Far from perfect, but it's better than a script that runs every minute the machine is running.

To do this, create a new script at ~/.local/bin/watch-darkmode.sh with the following contents:

gsettings monitor org.gnome.desktop.interface color-scheme | while read -r line; do
    if echo "$line" | grep -q "prefer-dark"; then
        sleep 0.2
        gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
    elif echo "$line" | grep -q "default"; then
        sleep 0.2
        gsettings set org.gnome.desktop.interface icon-theme 'Papirus'
    fi
done

You need to make the script executable, so run this next:

chmod +x ~/.local/bin/watch-darkmode.sh

Next thing is create a .desktop file that tells GNOME to automatically start the script when we log in:

# Create the file
nano ~/.config/autostart/watch-darkmode.desktop

# Paste this into the nano window
[Desktop Entry]
Type=Application
Name=Watch Dark Mode
Exec=/home/YOUR-USERNAME/.local/bin/watch-darkmode.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

Remember to change YOUR-USERNAME on the Exec= line to whatever your Ubuntu username is.

That's it! Log out, and back in again, and the script should be doing it's thing in the background. So the next time you switch between light and dark mode, your fancy-pants icon theme should persist.

]]>
Update #2 on the Framework Saga https://kevquirk.com/update-2-on-the-framework-saga https://kevquirk.com/update-2-on-the-framework-saga Mon, 27 Apr 2026 14:41:00 +0100 In case you hadn't heard (it's all I've been going on about for a couple weeks, so you probably have heard - sorry) I spilled coffee on my Framework 13, then after lots of testing and cleaning, I confirmed that the main board was dead.

The new main board was delivered this morning, so I went ahead and got it fitted to the chassis. Problem is, I'd pissed about the partitions on the 2TB NVMe so I could dump my install on the 1TB NVMe in my new ThinkPad T480. I tried booting up and fixing the 2TB NVMe, but it was screwed, so I cut my losses and went for a re-install of Ubuntu 24.04 instead.

I'm aware that Ubuntu 26.04 LTS has been released, but I prefer to wait for the first point release before upgrading.

After 10 minutes or so, the plucky little Framework was alive!

new install

So I spent most of the day (on my day off) configuring the fresh Ubuntu install back to how I had it before. Luckily the ThinkPad is working great, so I could use that as a reference to get everything pretty much exactly the same. After 3 or so hours work, we're back up and running with all my apps, data, and config restored.

done

Another issue

While setting up the laptop, I noticed that there was an issue with the screen. At first I thought it was just some residue from coffee-gate, but on closer inspection it looks like the bottom corner has somehow de-laminated.

screen

I know this wasn't caused by the coffee spillage, as the stain would be brown. Plus the laptop would smell. I'm wondering if it's some isopropyl alcohol, or contact cleaner, from when I cleaned it out.

The only other explanation is that it has de-laminated due to the heat in the conservatory, but I doubt it. It doesn't get that hot in there, and it's only April.

This is the second problem I've had with screens on the Framework. The bottom of the screen de-laminated just a week after I got the laptop. I thought it was a fluke, and Framework support sent me a replacement immediately, but this has me thinking that the screens just aren't that good.

Can anyone else who has a Framework 13 confirm if they've had issues with the 2880x1920 display?

Final thoughts

Anyway, this is the last update in the saga. For all intents and purposes the Framework is now repaired. I'm waiting to hear back from Framework support to see if they have any recommendations, but if not, I'll probably have to buy a new screen too.

It's lovely to be back typing this post on the Framework. I've really missed this laptop, and the typing experience.

Geez this has been one expensive mistake! Take note, people - if you drink coffee around your computers, keep a lid on the cup!

]]>
Why Is Everything Proprietary These Days? https://kevquirk.com/why-is-everything-proprietary-these-days https://kevquirk.com/why-is-everything-proprietary-these-days Sun, 26 Apr 2026 20:21:00 +0100 After 10 years of loyal service, the motorbike jacket that I wear most often gave up the ghost recently and ripped. Being a piece of protective clothing, a rip isn't a good thing, so I've been shopping around for a replacement.

But you see, motorbike jackets are complex, heavy garments that are littered with protective pads. They used to come with back protectors too, but it was later decided that these were too expensive, so you had to buy one separately.

No problem, they're standardised so you buy a good one and it can last you decades. There's just a big void in the back of the jacket with a number of velcro patches that any back protector will cling to.

That's what I have in my old jacket, and I assumed it was still the same now.

So today I bought myself a new jacket. It cost me £380 (on sale!) but you can't put a price on safety, right? I also have protective trousers that zip to my jacket all the way around my waist.

But the zip on my new jacket isn't compatible with the zip on my old trousers (how the fuck can a ZIP be incompatible??) so I bought the matching trousers for the new jacket, costing another £300.

So now I'm £650 lighter in the bank, but I have good quality motorbike clothing that should last me another decade.

This evening I went to swap the back protector from my old jacket to the new, only to find that many manufacturers now have brand-specific pads for their clothing that sit in perfectly sculpted pockets.

The specific back protector (which is a bit of rubber with some holes in it) for my jacket is fifty fucking pounds. So now I'm at £700.

back protector Fifty quid's worth of rubber, apparently

Fuck that. I've bought a generic (but good quality) one, and I'll cut it to size.

Vendor lock-in

Whether it's phones, social networks, communication platforms, printer ink, laptop chargers, smart home systems, games consoles, coffee machines, electric toothbrush heads, camera batteries, or fucking motorbike jacket back protectors. Nothing is interchangeable.

It seems that every day another piece of standardisation is being washed away, and we as consumers need to make our choices, invest, and stick to a brand. You can switch, but it's gonna cost ya!

It's fucking ridiculous.

Over and over again we get shafted, and there's not a single thing we can do about it. I'm so tempted to take the jacket back for a refund, but what do I do then? I need a jacket for riding. I'd be screwed.

Fuck bike jacket manufacturers that do this. Fuck vendor lock-in. Fuck. This.

</rant>

]]>
ThinkPad T480 Initial Thoughts https://kevquirk.com/thinkpad-t480-initial-thoughts https://kevquirk.com/thinkpad-t480-initial-thoughts Sat, 25 Apr 2026 11:48:00 +0100 Since my Framework had a coffee bath, I've been using a ThinkPad T480 that I picked up from eBay for £285 ($385).

This has been my main laptop for a few days now, and I have some thoughts, so I thought I'd share them since I've read mixed reviews on these plucky little laptops - everything from:

They're the best laptops in the world, EVARRRRR!

To:

They're overrated and overpriced - stop buying them!

My opinion is that the T480 is somewhere in the middle of these 2 opinions. Let's just in...

Price and condition

Like I said, I paid £285 for this laptop, which was listed as very good condition - refurbished". And I agree - the condition of the laptop is very good, especially considering it's been a corporate laptop and is 8 years old at this point.

It came with a 14" 1080p screen, 16GB RAM, a Core I5-8250U CPU (4 core, 8 thread @ 3.4GHz), a 256GB NVMe, and Windows 11 (which was promptly removed). I had a 1TB NVMe lying around, so I upgraded that first, and I've also bought a 32GB RAM upgrade costing an additional £70 ($95).

The RAM upgrade hasn't been delivered yet, so these thoughts are based on 16GB RAM.

My T480 My T480 (yes, those stickers needs to go)

Design and functionality

This laptop has bezels for days compared to my Framework, but that's to be expected. It's an old, utilitarian laptop - that didn't stop me getting a bit of a shock when I first cracked it open though. Now I've been using it a few days, the bezels don't bother me though.

I've always liked ThinkPad keyboards, and this is no exception. It works great, and has lots of travel on the keys, which I always appreciate. It's not as nice as the keyboard on my Framework, but I think that's the best keyboard I've ever used, Macbook included.

I'm not a fan of the textured finish that's all over this laptop though. It's on the case, on the keyboard, the trackpad, everywhere. It's like a slightly rubberised, gritty finish. It doesn't impact the functionality of the laptop, I'm just not a big fan of it.

The keyboard is backlit too, which I appreciate.

Battery and performance

Honestly, I was expecting the battery to be crap on the T480, being second-hand. But I was so wrong! It came with an extended battery fitted, and on checking it over, it's only had 2 charge cycles, so it brand new.

The battery will last all day, no problem at all. The other day I ran it for an entire working day, and at 15:00 it still had 61% charge left, with Ubuntu reporting another 6.5 hours of use remaining. That's incredible, in my opinion.

Ubuntu runs perfectly on this - all drivers were discovered fine, and I managed to get the fingerprint reader working with just a little bit of DuckDuckGo-fu.

Performance is good too. Everything feels snappy with no lag. Obviously it's not instant like on my Framework, but that thing is a powerhouse. Having said that, I could see myself using the T48 long-term without issue.

I'm currently running Firefox, Spotify, Obsidian, VSCodium, and a few other bits. Here's how the Ubuntu System Monitor looks:

system-monitor

So I'm using about half my RAM, and between 20-40% of the CPU. I don't need to upgrade the RAM, but it's nice to have the extra overhead in case I ever do need it.

I'm not much of a gamer, but the T480 will consistently run Minecraft at 40ish FPS, which is fine, and honestly better than I expected.

Final thoughts

Overall I think the T480 was good value for money. It's in really good condition, performs well, and is almost as repairable as my Framework. I think this laptop still has years of life left in it, so will it sit in a drawer once the Framework is repaired?

No, that would be a waste of both money, and a perfectly good laptop. My wife is currently using a 2014 X1 Carbon that I used for many years before switching to the Macbook M1 Air. The X1 is still going strong, but it's starting to struggle in its old age. Not to mention that my wife is still running Windows 10 on it!

So once the Framework is repaired, I'll be giving this laptop to my wife where it should continue to provide solid service for years to come, all while being a nice upgrade for her. The X1 will get the latest version of Ubuntu installed on it, and will be put out to pasture as the spare laptop for the household.

If you're on the fence about picking a T480 up, I'd say go for it. While they're no powerhouse, and won't win any beauty awards, they're a solid workhorse that still have many years of service left in them.

I'm very happy with my purchase.

]]>
Update on My Coffee Ridden Framework 13 https://kevquirk.com/update-on-my-coffee-ridden-framework-13 https://kevquirk.com/update-on-my-coffee-ridden-framework-13 Thu, 23 Apr 2026 14:43:00 +0100 A week or so ago, I talked about how I might have killed my Framework 13 by dumping a full mug of coffee over it while it was running.

In that last post I explained how I'd stripped the laptop down and was waiting for some isopropyl alcohol (IPA) to be delivered so I could more thoroughly clean it. Well dear reader, the IPA turned up, I cleaned it as best I could, and left it for 24 hours to dry off.

The next day I came back to it, re-assembled it and hit the power button with a fair amount of trepidation.

Nothing.

I think it's dead, Jim. And I can't help thinking that turning the laptop on in haste, after the first clean is what completely screwed it. Oh well, we live and learn.

In my desperation, I contacted Framework support and explained the whole saga to see if there was anything I was missing.

There wasn't. They told me that the LED pattern I was seeing when powered on was indicative of a communication error with the board, so it's dead and needed to be replaced.

Problem is, a new board is £700 (~$950) and I didn't fancy shelling out that much money out of my own pocket, so I contacted my home insurance provider to make a claim, and to be fair they were great.

A case was logged and a couple of days later I had a payout that would cover the whole amount.

The new board and a ThinkPad

The payout from the insurance was more than the repair cost, so I decided to upgrade from my current Ryzen 7 7840, to an AI 300 series board instead - nice little upgrade!

The Framework site said it would be shipped in 5 days, and would probably be subject to delays of a further 7 days due to global freight disruptions. So I bought myself a ThinkPad T480 to see me through (which I'm typing this post on) as I couldn't bear to be on MacOS for another second.

Framework overachieved again and the board is due for delivery tomorrow (Friday 24th April 2026).

Nice!

Once the board is delivered and my beloved Framework is (hopefully) working again, this nice little ThinkPad will go to my wife as an upgrade from here 2014(!) Gen 2 X1 Carbon.

How did it die?

I've had a few people reach out telling me that they'd done something similar and their device's had survived. Unfortunately I wasn't as lucky, so what happened?

I think it's because I didn't spill the coffee on my laptop, but next to it. Then as the puddle of coffee made its way over my desk and inevitably under my laptop, the spinning fan must have sucked it up and perfectly spread the coffee all over the main board.

Thanks for that. Stupid fan. 🤣️

Had I spilled the coffee on my laptop, it would have had to make its way through the keyboard and chassis before it got to the board, by which point I would have had the laptop switched off and draining.

I can't say for sure, but that's my theory.

So anyway, wish my luck with the new board, folks!

]]>
My Best Sub £100 Purchase https://kevquirk.com/my-best-sub-100-purchase https://kevquirk.com/my-best-sub-100-purchase Mon, 20 Apr 2026 17:50:00 +0100 I was recently listening to an episode of The Idea Roastery about personal life gamechangers and toward the end of the episode, Herman asked Jason:

What is the best purchase you've ever made for less than £100?

For Jason is was an egg poacher, and for Herman it was a coffee grinder. This discussion got me thinking about what mine was, and I really wasn't sure at first. But after some thought, it hit me.

It's my dog, Tia!

tia-01

She's getting old now, at nearly 14 years of age. But my wife and I got when she was 9 weeks old, after being taken from the litter at just 6 weeks old by some scumbag who ended up dumping her.

She cost us £80, and for that £80 we've had years of love, affection, and friendship from her. She's definitely my game-changer.

She's pretty cool too...

tia-02

I absolutely love everything about this dog. She's my best friend in the world. She's kind. She's gentle. She's the best at spooning too. Seriously, the best.

As I look back at a life well lived and she heads into her twilight years, we know we don't have long left with her, but my goodness the years we have had have been incredible.

So yeah, Tia is by far the best sub £100 I've ever spent, and probably will ever spend.

tia-03

Love you, T-bone. x

]]>
On AI Images and Feature Images in General https://kevquirk.com/on-ai-images-and-feature-images-in-general https://kevquirk.com/on-ai-images-and-feature-images-in-general Fri, 17 Apr 2026 11:50:00 +0100

When is AI image slop ok?

Gordon stumbled across a post arguing that AI-generated featured images signals laziness, even if every word you write is your own, and it made him stop and think about his own blog.

Read post ➡

This post piqued my interest, and surprise suprise, I have opinions. 🙃

I've spoken about my opinions on AI and image generation before and my opinion hasn't changed on that. I have, however, switched from ChatGPT to Claude, for reasons.

Using AI for feature images?

Like I said in my previous post about AI, I don't think it creates art, but it can be useful for diagrams and some imagary. I listed some examples of my usage in that post, go take a look.

For feature images, I think it's fine, I suppose. I don't think it has a bearing on the writer's ability to write good content thought. I think most people can spot AI-generated prose these days. If my spider-sense starts tingling, I'll close the tab. But if I only see an AI-generated feature image, it's fine.

I think images creation and the ability to write nice words are two different skills. Using AI to create a feature image doesn't tell me that the person has a particular lack of creativity, as creativity comes in many forms. Ask Brandon Sanderson to create the cover art for one of his books, and I imagine he'd struggle. Does that make him any less creative? No. It just means he's a creative writer, not a creative artist.

For the record - I have no idea if Sanderson is good at drawing. It's just an example, okay. Please don't email saying "well ackchyually..."

Would I do it? Probably not. But I don't see the point in feature images anyway. I stopped using them many years ago, as generally they add nothing to the post, and are more for the writer to make the post look pretty than anything else.

So when I see these kinds of feature images, my first thought tends to be meh... and my assumption is that the writer probably didn't have the time, or lacked the skills, to create an image. I'd personally prefer they didn't add one at all if that's the case, but that's just me.

Maybe we should all be a little less judgmental. 🤷🏼‍♂️

]]>
I May Have Killed My Framework 13 https://kevquirk.com/i-may-have-killed-my-framework-13 https://kevquirk.com/i-may-have-killed-my-framework-13 Thu, 16 Apr 2026 20:43:00 +0100 I was in my office today, working away, and I often have my personal laptop, a Framework 13 next to me so I do things like check notes and emails, listen to music, etc.

I reached over to grab something on the other side of my desk and managed to knock an entire fucking cup of coffee all over my beloved laptop. It immediately died, I assume because of some kind of safety net built into the device.

I cleaned my desk up, stripped it down, cleaned it up, and dried it out. My first pass at cleaning removed a load of coffee with a combination of contact cleaner (which is a solvent suitable for electronics) and my little air compressor to blow it all out.

I switched the laptop back on - it made a horrible noise, the screen flickered and it shut off.

FUCK!

Going further

Next thing was to remove the mainboard to get deeper into the guts of the laptop. Shock horror, there was more coffee behind there too! So I repeated the cleaning process again, only this time a lot more thoroughly.

Here's what it looks like now:

stripped framework

I then found a few little spots of corrosion on the board. I'm really worried it was a result of the spillage on live components, and have therefore ruined the mainboard.

So I took to DuckDuckGo to see what the best remedy is, and apparently it's isopropyl alcohol (IPA for short). I've ordered some for delivery tomorrow, and will continue cleaning it up to see if I can get this thing to live again. If not, I may have to buy a new mainboard (around £600).

In the meantime I'm back on my M1 MacBook Air and I'm hating it. The operating system feels almost user hostile. I know it isn't, because I used to love it, but now I'm so used to using Linux again, this feels horrible.

Hopefully I'll be able to get back to my Framework in the next couple days. Wish me luck!

]]>
I Wish I Could Talk to My Dad https://kevquirk.com/i-wish-i-could-talk-to-my-dad https://kevquirk.com/i-wish-i-could-talk-to-my-dad Wed, 15 Apr 2026 14:52:00 +0100 My best friend lost his Dad yesterday. Understandably he's extremely upset, and I feel awful for him. I never know what to do in these situations - "how are you doing?" just feels such a stupid thing to say. Like it's nowhere near enough. Of course he isn't doing well, you fucking idiot!

His loss has brought about feelings of loss following the death of my own Dad. Who we lost back in 2008 to cancer, when he was 47. Watching him just wither away was heartbreaking. Especially at the age of 23.

Now, nearly 20 years on, I rarely get upset about the loss. I still think about him all the time, but seeing what my friend has been going through has jumped it right to the front of my mind. Especially since the loss of my sister is still so raw.

I had a dream about my dad last night, the first I've had in a while. The dream was nothing special, I don't even fully remember what happened in it. But what I do vividly remember was that his voice wasn't right. And then I realised, I don't remember what my Dad's voice sounded like.

I have no videos of him, and no recordings on his voice. For a year or so after he died, I used to call his phone as it would go straight to voicemail and I'd get to hear his voice. Eventually the line was cut though. I wish I'd recorded it, just to have something.

I don't even have many photos of him. Most of them are from when I was a baby. I only have 1 photo of him and I as adults, which was taken on the day I passed out of basic training in the Army.

me dad granddad LTR: My dad, me, my dad's dad.

Just one conversation

Not being able to remember his voice isn't the only reason I'd love to talk to him again. He was funny, and always made me belly laugh. He loved to sing too - and was bloody good at it!

I'm also a very different person now than I was in 2008. I'd like for him to meet his grandsons, and I'd like to know what he thinks of the man I've turned into. He only met my (now) wife once or twice - he'd have loved her, and she'd have loved him.

All very narcissistic, I know. Be he was my dad!

Conversely, I'd love to know what kind of an old man he turned into. Would he still be as funny? Or would have turned into a grumpy old curmudgeon? Would we still go for a couple beers every Friday? Would he come here for barbecues in the summer? I'd have loved that.

There's no real point to this post, really. These thoughts have just been spinning around my grey matter for the last few days, and I wanted to work through them, which I think I've done a pretty poor job of.

So yeah, losing a loved one is shit. It never leaves you, and I feel horrendously sorry for my mate.

I'll try and make the next one more positive...

]]>
Adding a Book Editor to My Pure Blog Site https://kevquirk.com/adding-a-book-editor-to-my-pure-blog-site https://kevquirk.com/adding-a-book-editor-to-my-pure-blog-site Sun, 12 Apr 2026 14:08:00 +0100 Regular readers will know that I've been on quite the CMS journey over the years. WordPress, Grav, Jekyll, Kirby, my own little Hyde thing, and now Pure Blog. I won't bore you with the full history again, but the short version is: I kept chasing just the right amount of power and simplicity, and I think Pure Blog might actually be it.

But there was one nagging thing. I have a books page that's powered by a YAML data file, which creates a running list of everything I've read with ratings, summaries, and the occasional opinion. It worked great, but editing it meant cracking open a YAML file in my editor and being very careful not to mess up the indentation. Not ideal.

So I decided to build a proper admin UI for it. And in doing so, I've confirmed that Pure Blog is exactly what I wanted it to be - flexible and hackable.

The book editor

I added a new Books tab to the admin content page, and a dedicated edit-book.php editor page. It's got all the fields I need - title, author, genre, dates, a star rating dropdown, and a Goodreads URL. I also added CodeMirror editors for the summary and opinion fields, so I have all the markdown goodness they offer in the post and page editors.

The key thing is that none of this touched the Pure Blog core. Not a single line.

book editor My new book list in Pure Blog

book being edited A book being edited

How it actually works

Pure Blog has a few mechanisms that make this kind of thing surprisingly clean:

content/functions.php is auto-loaded after core, so any custom functions I define there are available everywhere — including in admin pages. I put my save_books_yaml() function here, which takes the books data and writes it back to the books.yml data file, then clears the cache — exactly like saving a normal post does. Again, zero core changes.

config/update-ignore is the escape hatch for when I do need to override a core file. I added both admin/content.php (where I added the Books tab) and admin/edit-book.php (the new editor) to the ignore list, so future Pure Blog updates won't mess with them. It's a simple text file, one path per line. Patch what you need, ignore it, and move on.

content/includes/ is where it gets a bit SSG-ish. The books page is powered by content/includes/books.php — a PHP file that loads the YAML, sorts it by read date, and renders the whole page. It's essentially a template, not unlike a Liquid or Nunjucks layout in Jekyll or Eleventy. Same idea for the books RSS feed.

Using a YAML data file for books made more sense to me, rather than markdown files like a post or a page, as it's all metadata really. There's no real "content" for these entries.

Put those three things together and you've got something pretty nifty. A customisable admin UI, safe core patching, and template-driven data pages — all without a plugin system or any framework magic.

Bloody. Brilliant.

Why this matters to me

I spent years chasing the perfect CMS, and a big part of what I was looking for was this. The ability to build exactly what I need without having to fight the platform, or fork it, or bolt on a load of plugins.

With Kirby, I could do this kind of thing, but the learning curve was steep and the blueprint system took me ages to get my head around. With Jekyll/Hyde, I had the SSG flexibility, but no web-based CMS I could login to and create content - I needed my laptop. Pure Blog sits in a really nice middle ground — it's got a proper admin interface out of the box, but it gets out of the way when you want to extend it.

I'm chuffed with how the book editor turned out. It's a small thing, but it's exactly what I wanted, and the fact that it all lives outside of core means I can update Pure Blog without worrying about losing any of it.

Now, if you'll excuse me, I have some books to log. 📚

]]>