Today I Learned

Short TIL posts

1834 posts latest post 2026-04-18
Publishing rhythm
Apr 2026 | 20 posts

Check out kyantech and their project Palmr.

🌴 Palmr. is an open-source file-sharing platform focused on privacy and security. It enables users to upload, manage, and share files with features like password protection, custom links, and access control without tracking or limitations. Designed for seamless and secure sharing, Palmr. is completely free.

awrit is a full graphical browser that runs inside of kitty. I’ve moved on some of my machines away from kitty as the maintainer has seemed so hostile and there are other great therminals out there, but I’m going to give this a go. I have kitty running on my hyprland setup as it is the default anyways. It is actual chromium rendering to a kitty graphics protocol.

Smooth clipboard settings for tmux is critical for my workflow. I’m often grabbing snippets of terminal output to paste into team chats, blog posts, or llm prompts. Admittedly, I’m often doing this with the mouse, unless it’s coming from neovim, which I generally do with motions. Moving from an xorg based setup to hyprland has required me to reconfigure my tmux clipboard settings. This is what I did.

First install wl-clipboard with AUR.">paru.

paru -S wl-clipboard

Next add this to your tmux config. I’ve long had this config, but with only the xorg/xclip setup, now this checks for wl-copy, uses it, or falls back to my old xclip setup.

I’ve ran my homelab on k3s for a year and a half now, and have had talos fomo the whole time. I’m not sure if this article helps or hurts. Helps to see that techdufus struggled and wished he went k3s first, but theres so much good to it that I want it.

I’m getting there, ok, I have some of it figured out but not firing on all cylinders like I want.

for PostgreSQL (way better than managing databases manually)

Amen to this, cnpg is kick ass and has me tempted to drop sqlite for my production database default. I mostly make small shit on the side that is never going to blow up. sqlite is really good, but the automation that comes along with cnpg to just run it on all nodes and backups once you establish the pattern with the first one is sick.

...

For anyone self hosting a bunch of apps under one domain, I just swapped all of mine to Host matching which includes the full subdomain, and it is glorious to not have 9+ items hit on all of your pages and only the one that you actually want.

open one > edit > gear icon next to url > Host

vim usage is becoming normie level. Just like archinstall made it too easy to install arch and brought normies into the ecosystem. It killed ArchBTW^TM^, distros like lazyvim have killed vimBTW^TM^. It used to be that to run arch, vim, nvim you had to read the docs, and go deep on understanding. running archinstallor lazyvim make it so easy to get started that you miss all of the details, you no longer have to understand ctags, quickfix, what an lsp is, or even how to set your own keybindings. You just use the damn thing, like you would with VSC****. No shame to anyone who does this, but you are probably missing out on a bunch of really useful features of a very core tool in your workflow.

Just discovered Sylvan Franklin in this post and he is cracked, sub now.

I got virtual machine manager running on two Bazzite machines today. It was a bit tricky, more than I thought actually. I ran into all sorts of virtualisation not setup issues when I tried the flatpak. Then I found that Bazzite comes with a ujust setup-virtualization command that does all the work for me. I tried that and again virtual machine manager was here, but not working, this time it feels like flatpak issues.

In a Hail Mary attempt I got it working by using an ubuntu distrobox container to run the UI. And it worked!

From the host we create the container to use from distrobox. This is an ubuntu machine, it can be any os of your choosing, preferably one that you are familiar with and contains virt-manager in its package repos.

distrobox create -i ubuntu distrobox enter ubuntu

from inside the distrobox container #

Now that we are in the distrobox we are no longer in an immutable distro and we can easily install anything we want. I actually like this process. I might have shit like this that I use for a month or a few...

...

I just never quite understood why the word just can send people over the top. I get it when you don’t know someone, you don’t have history with them, and they come in saying you are doing something wrong.

I pulled this out into a full post just

2025 is not the year to get put on the market, its rough out there. Junior’s have little chance, senior+ are even struggling. We had it easy from 2020-2023, now its over saturated and you have to want to be in this industry to be here and stay here. It used to be a fine place to get a good job to pay the bills, the bar has been raised and if you don’t want to be here you are going to struggle. Theo covers this in this linked video deeply [[ thoughts-472 ]].

David’s design on his blog is fantastic likely from years of small improvements like this converting ugly quotes to pretty quotes and optimizing fonts.

It’s common for markdown libraries to convert the first to the second like my build script does.

This is new to me, I had no idea that markdown libraries did this, I’m now interested if markdown-it does it.

For subsetting I use the fontTools library but I’ve no idea how to setup Python environments. I got it working once and failed to document the process.

...

Copier has a few quirks with vcs that I just discovered by trying to test out some changes. I may have some config that I have long forgotten about somewhere deep in my dotfiles, I don’t think so, but id love to be wrong and corrected, please reach out.

I tried throwing everything at this template to make it work. I tried a bunch of flags that did not work. I tried making commits to the local repo to get rid of the dirty warning. I really wanted to test new changes locally without committing and pushing untested and potentially broken changes.

uvx copier copy ../markata-blog-starter . uvx copier copy gh:waylonwalker/markata-blog-starter@develop . uvx copier copy ../markata-blog-starter . -wlg --trust

What Works - –vcs-ref #

Finally after trying everything to get the local copy to work, and my guess of @branch not working I found this to work. It does require me to go to the repo on my develop branch.

uvx copier copy gh:waylonwalker/markata-blog-starter --vcs-ref develop .

...

I came across checkbox from canonical, and it’s packed with great features and ideas.

Checkbox is a testing framework used to validate device compatibility with Ubuntu Linux. It’s the testing tool developed for the purposes of the Ubuntu Certification program.