// Writing · think out loud
Engineering, design, infra, and the occasional strong opinion. Long-form, hand-written, zero SEO sludge.
Linux · KDE · 1 min read
Dead keys stopped working in Ghostty on KDE. A GTK input method regression, fixed with fcitx5 and three env vars.
Read it →Apr 29, 2026
Setting up llama.cpp for private offline coding assistance. The setup works. The CPU does not.
Read →Apr 25, 2026
Accidentally corrupted the firmware on a split keyboard. Here's how to get back to a working Vial layout without losing your mind.
Read →Apr 12, 2026
VPN was connected. Database was unreachable. Coffee was cold. Turns out Docker's default network range was silently colliding with the VPN subnet.
Read →Oct 31, 2025
// Archive · Medium
Two methods for upgrading to Plasma 6 via the extra-testing repository — quick or selective.
Read →Feb 29, 2024
Measure it, schedule time for it, track progress. Three steps that make debt manageable instead of demoralising.
Read →Jan 24, 2024
Full guide: GPG setup, PKGBUILD creation, git source packaging, and QA before pushing to the AUR.
Read →Nov 24, 2023
Telescope, Treesitter, lsp-zero, and Catppuccin — a complete from-scratch setup walkthrough.
Read →Oct 24, 2023
First-time experience publishing dracut-numlock to the AUR — from research to quality checks to submission.
Read →Oct 20, 2023
Set up Bismuth for automatic tiling and dynamic layout switching inside KDE Plasma.
Read →Oct 11, 2023
Install touchegg and touché to define your own touchpad gestures for browser nav, desktop switching and more.
Read →Sep 21, 2023
Why blurredwallpaper stopped working after a KDE update — investigating the kwin script lifecycle for newly launched windows.
Read →Aug 24, 2023
Detect scroll-to-top on a horizontal FlatList and prepend data without jumping the user's position.
Read →Jul 18, 2023
Infinite scroll in React Native using onEndReached and onEndReachedThreshold.
Jul 18, 2023
A scrollable weekly calendar with auto-snapping, dynamic month loading, and a "today" button built on FlatList and Luxon.
Read →Jul 3, 2023
Switch from the open-source Nouveau driver to Nvidia's proprietary one on Arch-based systems using nvidia-inst and envycontrol.
Read →Jun 12, 2023
Add hot reload and a single npm command to run both Parcel and Electron concurrently.
Read →Apr 6, 2021
Boilerplate for a desktop app with React, TypeScript and Electron using Parcel as bundler.
Read →Apr 6, 2021
Swap NestJS's default logger for Pino: pretty-printed in dev, compact in prod.
Read →Jun 11, 2020