<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>YROOT</title><link>https://yroot.io/en/</link><description>Recent content on YROOT</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 15 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://yroot.io/en/index.xml" rel="self" type="application/rss+xml"/><item><title>My Claude Code Status Line</title><link>https://yroot.io/en/posts/claude-code-statusline/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://yroot.io/en/posts/claude-code-statusline/</guid><description>&lt;p&gt;Context usage, cost, git status – things you want to keep an eye on while working with Claude Code, without having to ask for them. The status line shows that persistently at the bottom of the terminal. After each response, Claude Code runs a shell script that receives session data as JSON on stdin and outputs whatever you want to see.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what mine looks like:&lt;/p&gt;
&lt;pre style="padding:1em;border-radius:6px;line-height:1.8;overflow-x:auto;font-size:.9em"&gt;&lt;code&gt;&lt;span style="color:#89dceb;font-weight:bold"&gt;[Claude Sonnet 4.6]&lt;/span&gt; &lt;span style="opacity:.4"&gt;❯&lt;/span&gt; my-project &lt;span style="opacity:.4"&gt;|&lt;/span&gt; ⑂ &lt;span style="color:#a6e3a1"&gt;main&lt;/span&gt; &lt;span style="color:#f9e2af"&gt;~2&lt;/span&gt; &lt;span style="opacity:.4"&gt;|&lt;/span&gt; &lt;span style="color:#a6e3a1"&gt;+41&lt;/span&gt; &lt;span style="color:#f38ba8"&gt;-7&lt;/span&gt;
&lt;span style="color:#a6e3a1"&gt;▓▓▓░░░░░░░&lt;/span&gt; 31% ctx &lt;span style="opacity:.4"&gt;|&lt;/span&gt; &lt;span style="color:#f9e2af"&gt;$0.042&lt;/span&gt; &lt;span style="opacity:.4"&gt;|&lt;/span&gt; ⧗ 3m 12s &lt;span style="opacity:.4"&gt;|&lt;/span&gt; 5h: 37% 7d: 23% &lt;span style="opacity:.4"&gt;|&lt;/span&gt; in:12k out:&lt;span style="color:#89dceb"&gt;3.2k&lt;/span&gt; &lt;span style="opacity:.4"&gt;| cache&lt;/span&gt; w:8k r:&lt;span style="color:#a6e3a1"&gt;21k&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script lives at &lt;code&gt;~/.claude/statusline.sh&lt;/code&gt;, wired up in &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Archlinux with Wayland</title><link>https://yroot.io/en/posts/archlinux-with-wayland/</link><pubDate>Sat, 11 Mar 2023 17:34:00 +0200</pubDate><guid>https://yroot.io/en/posts/archlinux-with-wayland/</guid><description>&lt;h2
 id="arch-linux-important-links"
 class="prose-h2"
&gt;
 &lt;a
 href="#arch-linux-important-links"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;##&lt;/a&gt;Arch Linux Important Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://archlinux.org/download/" data-path="/download/" target="_blank" rel="noopener nofollow"&gt;Arch Linux Download Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/title/Installation_guide" data-path="/title/Installation_guide" target="_blank" rel="noopener nofollow"&gt;Arch Linux Wiki Install Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2
 id="basic-setup"
 class="prose-h2"
&gt;
 &lt;a
 href="#basic-setup"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;##&lt;/a&gt;Basic Setup&lt;/h2&gt;
&lt;p&gt;Load keyboard layout&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;loadkeys de&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3
 id="perpare-disk"
 class="prose-h3"
&gt;
 &lt;a
 href="#perpare-disk"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;###&lt;/a&gt;Perpare Disk&lt;/h3&gt;
&lt;h4
 id="partitioning"
 class="prose-h4"
&gt;
 &lt;a
 href="#partitioning"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;####&lt;/a&gt;Partitioning&lt;/h4&gt;
&lt;p&gt;Target:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1G Boot Partition&lt;/li&gt;
&lt;li&gt;(RAM * 1.5) Swap Partition&lt;/li&gt;
&lt;li&gt;Root Partition&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cfdisk /dev/sda&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4
 id="formatting"
 class="prose-h4"
&gt;
 &lt;a
 href="#formatting"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;####&lt;/a&gt;Formatting&lt;/h4&gt;

&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfs.fat -F &lt;span class="m"&gt;32&lt;/span&gt; /dev/sda1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkswap /dev/sda2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create encrypted ext4 root partition&lt;/p&gt;

&lt;pre tabindex="0"&gt;&lt;code&gt;cryptsetup -y -v luksFormat /dev/sda3
cryptsetup open /dev/sda2 cryptroot
mkfs.ext4 /dev/mapper/root&lt;/code&gt;&lt;/pre&gt;
&lt;h4
 id="mount-partitions"
 class="prose-h4"
&gt;
 &lt;a
 href="#mount-partitions"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;####&lt;/a&gt;Mount partitions&lt;/h4&gt;

&lt;pre tabindex="0"&gt;&lt;code&gt;mount /dev/mapper/cryptroot /mnt

mount --mkdir /dev/sda1 /mnt/boot

swapon /dev/sda2&lt;/code&gt;&lt;/pre&gt;
&lt;h3
 id="prepare-pacman"
 class="prose-h3"
&gt;
 &lt;a
 href="#prepare-pacman"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;###&lt;/a&gt;Prepare pacman&lt;/h3&gt;
&lt;p&gt;Update download server&lt;/p&gt;</description></item><item><title>imprint</title><link>https://yroot.io/en/imprint/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://yroot.io/en/imprint/</guid><description>&lt;h2
 id="angaben-gemäß--5-tmg"
 class="prose-h2"
&gt;
 &lt;a
 href="#angaben-gem%c3%a4%c3%9f--5-tmg"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;##&lt;/a&gt;Angaben gemäß § 5 TMG&lt;/h2&gt;
&lt;p&gt;Yannick Breuer&lt;/p&gt;
&lt;h2
 id="kontakt"
 class="prose-h2"
&gt;
 &lt;a
 href="#kontakt"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;##&lt;/a&gt;Kontakt&lt;/h2&gt;
&lt;p&gt;E-Mail: &lt;a href="mailto:kontakt@yroot.io" data-path="" target="_blank" rel="noopener nofollow"&gt;kontakt@yroot.io&lt;/a&gt;&lt;/p&gt;
&lt;h2
 id="haftungsausschluss"
 class="prose-h2"
&gt;
 &lt;a
 href="#haftungsausschluss"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;##&lt;/a&gt;Haftungsausschluss&lt;/h2&gt;
&lt;h3
 id="haftung-für-inhalte"
 class="prose-h3"
&gt;
 &lt;a
 href="#haftung-f%c3%bcr-inhalte"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;###&lt;/a&gt;Haftung für Inhalte&lt;/h3&gt;
&lt;p&gt;Die Inhalte dieser Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte kann jedoch keine Gewähr übernommen werden.&lt;/p&gt;
&lt;h3
 id="haftung-für-links"
 class="prose-h3"
&gt;
 &lt;a
 href="#haftung-f%c3%bcr-links"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;###&lt;/a&gt;Haftung für Links&lt;/h3&gt;
&lt;p&gt;Diese Website enthält Links zu externen Websites Dritter, auf deren Inhalte kein Einfluss besteht. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter verantwortlich.&lt;/p&gt;</description></item><item><title>Privacy</title><link>https://yroot.io/en/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://yroot.io/en/privacy/</guid><description>&lt;h2
 id="1-datenschutz-auf-einen-blick"
 class="prose-h2"
&gt;
 &lt;a
 href="#1-datenschutz-auf-einen-blick"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;##&lt;/a&gt;1. Datenschutz auf einen Blick&lt;/h2&gt;
&lt;h3
 id="allgemeine-hinweise"
 class="prose-h3"
&gt;
 &lt;a
 href="#allgemeine-hinweise"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;###&lt;/a&gt;Allgemeine Hinweise&lt;/h3&gt;
&lt;p&gt;Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung.&lt;/p&gt;
&lt;h3
 id="datenerfassung-auf-dieser-website"
 class="prose-h3"
&gt;
 &lt;a
 href="#datenerfassung-auf-dieser-website"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;###&lt;/a&gt;Datenerfassung auf dieser Website&lt;/h3&gt;
&lt;h4
 id="wer-ist-verantwortlich-für-die-datenerfassung-auf-dieser-website"
 class="prose-h4"
&gt;
 &lt;a
 href="#wer-ist-verantwortlich-f%c3%bcr-die-datenerfassung-auf-dieser-website"
 class="prose-anchor-prefix"
 aria-hidden="true"
 tabindex="-1"
 &gt;####&lt;/a&gt;Wer ist verantwortlich für die Datenerfassung auf dieser Website?&lt;/h4&gt;
&lt;p&gt;Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis zur Verantwortlichen Stelle“ in dieser Datenschutzerklärung entnehmen.&lt;/p&gt;</description></item></channel></rss>