Jin Notebook
Searching...
No results found
HomeAboutPosts

All Posts

10articles

August 16, 202616 min read

Voice input on Cloudflare's free tier: three silent failures, all HTTP 200

Whisper transcription and LLM polishing for a Linux input method, running on the Workers AI daily free allowance. The feature took an afternoon. Three failures took much longer, because every one of them returned 200 and quietly fell back to the unprocessed text.

August 16, 20268 min read

HDMI can't do it: 4K at 100Hz on Linux, and the workarounds that outlived the problem

My monitor does 100Hz and my GPU can drive it, but no open-source driver is permitted to implement HDMI 2.1 FRL. Switching to DisplayPort fixed the refresh rate, fixed the colour range, and left me with a contrast setting I had raised to compensate for a problem that no longer existed.

August 13, 202615 min read

Two kinds of swap: zram for pressure, a 64 GiB btrfs file for hibernation

This laptop had 62 GiB of RAM, a 4 GiB zram device, and no way to hibernate - because zram lives in the memory you are trying to save. Adding a btrfs swapfile meant a dedicated subvolume, a physical offset that can go stale, and three separate ways hourly snapshots could quietly break it.

August 11, 20266 min read

Bluetooth mice on Linux: 33Hz by default, because nobody's job is to fix it

My BLE mouse stuttered because the kernel asks it for coordinates every 30ms - a default written for heart rate straps. Four lines in main.conf took it to 141Hz. The kernel, BlueZ and the mouse each have a defensible reason not to fix this.

August 11, 20266 min read

Switching KDE to Chinese: the setting was right, everything under it was wrong

KDE was set to Chinese and the UI stayed English, because the locale had never been generated. Fixing that surfaced Korean glyphs, then a UI one weight too heavy - MiSans ships weight metadata fontconfig reads wrong.

August 9, 20268 min read

TLP on a System76 Darter Pro: four overrides and nine pitfalls

The install is trivial; the tuning is where you lose a weekend. My full TLP config on an Arrow Lake System76 laptop, and every trap I hit getting there — from a PCIe ASPM setting that broke the card reader to a platform_profile knob that was never connected to anything.

August 9, 20267 min read

Everything I explicitly installed on this Arch box, and why

The 240 packages I asked for by name, minus the plumbing nobody chooses, grouped by the reason each one exists rather than by repo section.

August 8, 20266 min read

Auditing my Arch install: 1,598 packages in 105 days

Eighteen AI coding agents on this laptop take up 3.81 GiB. The entire GNOME desktop takes 0.37 GiB. Here's what else the audit found, and the pacman commands that found it.

August 7, 20265 min read

CJK fonts on Arch Linux: installing them is the easy part

Installing Chinese fonts on Arch is one pacman command. Getting fontconfig to hand the right one to sans-serif is the actual work, and it's why your UI digits look heavy.

June 21, 20264 min read

Zig Msgpack

Tools
Jin Notebook

Programming is like building blocks

Navigate

  • Home
  • All Posts
  • About

Connect

  • RSS Feed

About

A blog about software, design, and the occasional stray thought.

© 2026 Jin Notebook