<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Undefined Behavior</title>
    <link>https://alanone.github.io/undefined-behavior/</link>
    <description>Recent content on Undefined Behavior</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Fri, 11 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://alanone.github.io/undefined-behavior/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A &#39;Random Video&#39; Button for the Omarchy Bar</title>
      <link>https://alanone.github.io/undefined-behavior/posts/omarchy-random-video-plugin/</link>
      <pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/omarchy-random-video-plugin/</guid>
      <description>A bar popup that plays a random video inline with a Reroll button — and the YouTube split-stream problem that turned out to be the actual hard part.</description>
    </item>
    <item>
      <title>A Software KVM for Hyprland, Since Synergy/Barrier Won&#39;t Work</title>
      <link>https://alanone.github.io/undefined-behavior/posts/omarchy-mwb-bridge-software-kvm/</link>
      <pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/omarchy-mwb-bridge-software-kvm/</guid>
      <description>Why Synergy, Barrier, Input Leap, and Deskflow all fail on Hyprland, and the Rust daemon I built instead — reimplementing PowerToys&amp;rsquo; Mouse Without Borders wire protocol against Hyprland&amp;rsquo;s own wlroots input protocols.</description>
    </item>
    <item>
      <title>Building a Camera Bar Widget for Omarchy (Reolink &#43; Google Nest)</title>
      <link>https://alanone.github.io/undefined-behavior/posts/omarchy-camera-widget-go2rtc/</link>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/omarchy-camera-widget-go2rtc/</guid>
      <description>A snapshot pill in the Omarchy bar that switches between however many cameras you&amp;rsquo;ve got, with a popup UI to add or remove them — no config file editing, no fixed camera count.</description>
    </item>
    <item>
      <title>API Versioning Strategies That Actually Work in Production</title>
      <link>https://alanone.github.io/undefined-behavior/posts/api-versioning-strategies/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/api-versioning-strategies/</guid>
      <description>Every API eventually needs to change in a way that breaks someone. The question isn&amp;rsquo;t whether to version — it&amp;rsquo;s which strategy you can actually maintain two years in.</description>
    </item>
    <item>
      <title>Gaming on Linux in 2026: What Proton Actually Handles and What Still Needs Work</title>
      <link>https://alanone.github.io/undefined-behavior/posts/linux-gaming-proton-guide/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/linux-gaming-proton-guide/</guid>
      <description>Proton has made Linux gaming genuinely viable, not just theoretically possible. Here&amp;rsquo;s the honest state of it: what to check before buying a game, and the tools that actually matter.</description>
    </item>
    <item>
      <title>Laravel to Craft CMS: What Actually Transfers, and What Doesn&#39;t</title>
      <link>https://alanone.github.io/undefined-behavior/posts/laravel-to-craft-cms/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/laravel-to-craft-cms/</guid>
      <description>Both are PHP, both are opinionated, and that&amp;rsquo;s about where the similarity stops being useful. Here&amp;rsquo;s what a Laravel developer&amp;rsquo;s instincts get right and wrong on a first Craft CMS project.</description>
    </item>
    <item>
      <title>Reverse Proxy with Caddy: The Only Config You Need for HTTPS</title>
      <link>https://alanone.github.io/undefined-behavior/posts/caddy-reverse-proxy-https/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/caddy-reverse-proxy-https/</guid>
      <description>Once you&amp;rsquo;re running more than one self-hosted app, a reverse proxy stops being optional. Caddy gets you there with a config file short enough to read in ten seconds.</description>
    </item>
    <item>
      <title>Systemd Services Explained: Writing Your Own Unit File</title>
      <link>https://alanone.github.io/undefined-behavior/posts/systemd-services-explained/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/systemd-services-explained/</guid>
      <description>Every guide shows you a unit file to copy. Here&amp;rsquo;s what each line actually does, tested live, including the one gotcha that trips up nearly every first attempt at a user service.</description>
    </item>
    <item>
      <title>WSL2 Setup Guide: A Real Linux Environment on Windows Without Dual-Booting</title>
      <link>https://alanone.github.io/undefined-behavior/posts/wsl2-setup-guide/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/wsl2-setup-guide/</guid>
      <description>You don&amp;rsquo;t need to dual-boot or run a VM to get a genuine Linux environment on Windows. Here&amp;rsquo;s what WSL2 actually gets you, and the handful of things worth configuring on day one.</description>
    </item>
    <item>
      <title>Best Self-Hosted Apps to Run on a Home Server in 2026</title>
      <link>https://alanone.github.io/undefined-behavior/posts/self-hosted-apps-home-server/</link>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/self-hosted-apps-home-server/</guid>
      <description>A shortlist of self-hosted apps that are actually worth the maintenance burden, organized by what problem they solve.</description>
    </item>
    <item>
      <title>Omarchy Keybindings Cheat Sheet You&#39;ll Actually Use</title>
      <link>https://alanone.github.io/undefined-behavior/posts/hyprland-keybindings-cheat-sheet/</link>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/hyprland-keybindings-cheat-sheet/</guid>
      <description>The core Omarchy binds worth memorizing first, organized by what you&amp;rsquo;re actually trying to do — pulled from the live binding list, not a copy-pasted default config.</description>
    </item>
    <item>
      <title>Omarchy Setup Guide: What to Change in Your First Hour</title>
      <link>https://alanone.github.io/undefined-behavior/posts/omarchy-setup-guide/</link>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/omarchy-setup-guide/</guid>
      <description>Omarchy ships with strong opinionated defaults, configured through a Lua API rather than plain Hyprland conf files. Here&amp;rsquo;s what&amp;rsquo;s worth touching immediately, and what to leave alone.</description>
    </item>
    <item>
      <title>Start Here: A Practical Path Through This Site</title>
      <link>https://alanone.github.io/undefined-behavior/posts/start-here/</link>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/start-here/</guid>
      <description>Where to start depending on what you&amp;rsquo;re actually here for — organized by category, not just publish order.</description>
    </item>
    <item>
      <title>Turn an Old Laptop Into a Home Server (Step by Step)</title>
      <link>https://alanone.github.io/undefined-behavior/posts/old-laptop-to-home-server/</link>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/posts/old-laptop-to-home-server/</guid>
      <description>You don&amp;rsquo;t need a NAS or a rack to start self-hosting. An old laptop with a broken screen and a wall outlet is enough.</description>
    </item>
    <item>
      <title>About</title>
      <link>https://alanone.github.io/undefined-behavior/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://alanone.github.io/undefined-behavior/about/</guid>
      <description>&lt;p&gt;Undefined Behavior is a small, honest collection of notes on Linux, Windows, gaming,
self-hosting, and programming. No sponsored fluff, no AI-generated listicles — just what
actually happened when setting this stuff up for real.&lt;/p&gt;
&lt;p&gt;The name is the point: this is what you get when you push a system past what it&amp;rsquo;s
officially supposed to do — the config that isn&amp;rsquo;t documented, the compatibility edge case,
the framework instinct that doesn&amp;rsquo;t transfer. That&amp;rsquo;s the whole beat of this site.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
