<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Maintenance on Alwaldend</title>
		<link>https://www-staging.alwaldend.com/statuses/maintenance/</link>
		<description>Recent content in Maintenance on Alwaldend</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<atom:link href="https://www-staging.alwaldend.com/statuses/maintenance/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>ActivityWatch ingester Android</title>
				<link>https://www-staging.alwaldend.com/docs/projects/activitywatch_ingester_android/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/docs/projects/activitywatch_ingester_android/</guid>
				<description>&lt;h1 id=&#34;activitywatch-ingester-android&#34;&gt;ActivityWatch ingester Android&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#activitywatch-ingester-android&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;An Android collector that reads supported browser address-bar text through&#xA;Android accessibility and sends it to an ActivityWatch server. The app holds&#xA;full accessibility permission only to obtain the URL; it never uses that&#xA;permission for anything else.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-it-works&#34;&gt;How it works&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#how-it-works&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Enabling accessibility for this app lets it read the focused address bar.&lt;/li&gt;&#xA;&lt;li&gt;The accessibility service matches browser view IDs (&lt;code&gt;url_bar&lt;/code&gt; and common&#xA;Chrome-derived variants), extracts the current URL, and sends an&#xA;ActivityWatch heartbeat for the &lt;code&gt;web.tab.current&lt;/code&gt; bucket to a configurable&#xA;server.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;web.tab.current&lt;/code&gt; heartbeats use &lt;code&gt;pulsetime=1.0&lt;/code&gt;; consecutive URLs are sent&#xA;with the time spent on the previous tab as the &lt;code&gt;duration&lt;/code&gt; field.&lt;/li&gt;&#xA;&lt;li&gt;Data goes directly from this app to the ActivityWatch HTTP API; it is not&#xA;uploaded to any other service.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#configuration&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Open the app to configure:&lt;/p&gt;</description>
			</item>
			<item>
				<title>ActivityWatch ingester Android</title>
				<link>https://www-staging.alwaldend.com/projects/activitywatch_ingester_android/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/projects/activitywatch_ingester_android/</guid>
				<description>&lt;p&gt;An Android collector that reads the browser address bar through Android&#xA;accessibility services and sends visited URLs to an ActivityWatch server, so&#xA;browser activity appears alongside the rest of your tracked time.&lt;/p&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Reads supported browsers through accessibility, with no browser extension&lt;/li&gt;&#xA;&lt;li&gt;Sends browser URLs to a configured ActivityWatch server&lt;/li&gt;&#xA;&lt;li&gt;Written in Kotlin for Android&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Android launcher</title>
				<link>https://www-staging.alwaldend.com/docs/projects/android_launcher/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/docs/projects/android_launcher/</guid>
				<description>&lt;p&gt;A text-only Android launcher built with Kotlin and Jetpack Compose. It lets&#xA;you hide apps and runs without ads, tracking, or internet access.&lt;/p&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#links&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Source code: &lt;a href=&#34;https://github.com/alwaldend/src/tree/master/projects/android_launcher&#34;&gt;https://github.com/alwaldend/src/tree/master/projects/android_launcher&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Android app&lt;/li&gt;&#xA;&lt;li&gt;Kotlin, Jetpack Compose&lt;/li&gt;&#xA;&lt;li&gt;Only text&lt;/li&gt;&#xA;&lt;li&gt;FOSS, no ads, no internet access, no tracking, minimal dependencies&lt;/li&gt;&#xA;&lt;li&gt;Allows you to hide apps&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Android launcher</title>
				<link>https://www-staging.alwaldend.com/projects/android_launcher/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/projects/android_launcher/</guid>
				<description>&lt;p&gt;A text-only Android launcher built with Kotlin and Jetpack Compose. It&#xA;lets you hide apps from the launcher and runs without ads, tracking, or&#xA;internet access.&lt;/p&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Text-only launcher interface&lt;/li&gt;&#xA;&lt;li&gt;Hide selected apps&lt;/li&gt;&#xA;&lt;li&gt;No ads, tracking, or network access&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Ansible collection</title>
				<link>https://www-staging.alwaldend.com/docs/projects/ansible_collection/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/docs/projects/ansible_collection/</guid>
				<description>&lt;p&gt;&lt;code&gt;alwaldend.main&lt;/code&gt; is the repository&amp;rsquo;s Ansible collection. Bazel packages its&#xA;Ansible source for reuse in repository automation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#links&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Source code: &lt;a href=&#34;https://github.com/alwaldend/src/tree/master/projects/ansible_collection&#34;&gt;https://github.com/alwaldend/src/tree/master/projects/ansible_collection&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Docs: &lt;a href=&#34;https://docs.ansible.com/ansible/latest/collections_guide/index.html&#34;&gt;https://docs.ansible.com/ansible/latest/collections_guide/index.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Ansible collection&lt;/li&gt;&#xA;&lt;li&gt;Bazel-managed Ansible source packaging.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;galaxy&#34;&gt;Galaxy&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#galaxy&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;namespace&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;alwaldend&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;main&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;version&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;0.0.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;readme&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;README.md&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;authors&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-  &lt;span style=&#34;color:#ae81ff&#34;&gt;&amp;lt;example@domain.com&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;description&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;main alwaldend ansible collection&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;license&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;AGPL-3.0-or-later&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;license_file&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;LICENSE.txt&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;tags&lt;/span&gt;: []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;dependencies&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;ansible.posix&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1.5.4&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;community.crypto&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2.17.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;community.general&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;11.3.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;devsec.hardening&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;9.0.1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;community.docker&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;3.11.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;repository&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://git.alwaldend.com/src&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;documentation&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://collection-main.docs.alwaldend.com&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;homepage&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://collection-main.docs.alwaldend.com&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;issues&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;build_ignore&lt;/span&gt;: []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Ansible collection</title>
				<link>https://www-staging.alwaldend.com/projects/ansible_collection/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/projects/ansible_collection/</guid>
				<description>&lt;p&gt;&lt;code&gt;alwaldend.main&lt;/code&gt; is this repository&amp;rsquo;s Ansible collection. Bazel packages&#xA;its Ansible source so the same roles and modules can be reused by repository&#xA;automation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Ansible roles and modules packaged as a collection&lt;/li&gt;&#xA;&lt;li&gt;Bazel packaging for reuse in repository automation&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Dotfiles</title>
				<link>https://www-staging.alwaldend.com/docs/projects/dotfiles/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/docs/projects/dotfiles/</guid>
				<description>&lt;p&gt;This project packages personal configuration files into an installable&#xA;archive. Make and Bazel entry points compare the packaged files with the&#xA;local system and install selected configurations.&lt;/p&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#links&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Source code: &lt;a href=&#34;https://github.com/alwaldend/src/tree/master/projects/dotfiles&#34;&gt;https://github.com/alwaldend/src/tree/master/projects/dotfiles&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Archive with dotfiles that can be installed using make&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bazel-usage&#34;&gt;Bazel usage&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#bazel-usage&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bazel run //projects/dotfiles:help &lt;span style=&#34;color:#75715e&#34;&gt;# Show help&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bazel run //projects/dotfiles:diff &lt;span style=&#34;color:#75715e&#34;&gt;# Show diff&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bazel run //projects/dotfiles:install &lt;span style=&#34;color:#75715e&#34;&gt;# Install files&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;archive-usage&#34;&gt;Archive usage&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#archive-usage&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;oras pull --output &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;PWD&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; docker.io/alwaldend/src:projects_dotfiles_dotfiles_tar_head&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd releases/projects/dotfiles/head/files&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -xf dotfiles.tar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd dotfiles&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make help &lt;span style=&#34;color:#75715e&#34;&gt;# Show help&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make diff &lt;span style=&#34;color:#75715e&#34;&gt;# Check diff between system files and those from the archive&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make diff/nvim &lt;span style=&#34;color:#75715e&#34;&gt;# Check diff for all nvim files&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make diff/nvim/.config/nvim/lazy-lock.json &lt;span style=&#34;color:#75715e&#34;&gt;# Diff specific file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make install &lt;span style=&#34;color:#75715e&#34;&gt;# Install all files from the archive&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make install/nvim &lt;span style=&#34;color:#75715e&#34;&gt;# Install nvim files&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make install/nvim/.config/nvim/lazy-lock.json &lt;span style=&#34;color:#75715e&#34;&gt;# Install a specific file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;help&#34;&gt;Help&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#help&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;help: Show help&#xA;install: Install files from the archive&#xA;diff: Show diff between archive files and system files&#xA;install/bin: Install bin files&#xA;diff/bin: Diff bin files&#xA;install/home: Install home files&#xA;diff/home: Diff home files&#xA;install/nvim: Install nvim files&#xA;diff/nvim: Diff nvim files&#xA;make: Nothing to be done for &amp;#39;help&amp;#39;.&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
			</item>
			<item>
				<title>Dotfiles</title>
				<link>https://www-staging.alwaldend.com/projects/dotfiles/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/projects/dotfiles/</guid>
				<description>&lt;p&gt;This project packages personal configuration files into an installable&#xA;archive. Entry points compare the packaged files against the local system and&#xA;install selected configurations.&lt;/p&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Configuration files packaged into one installable archive&lt;/li&gt;&#xA;&lt;li&gt;Comparison against the local system before installing&lt;/li&gt;&#xA;&lt;li&gt;Selective installation instead of all-or-nothing&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Infinitime</title>
				<link>https://www-staging.alwaldend.com/docs/projects/infinitime/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/docs/projects/infinitime/</guid>
				<description>&lt;p&gt;This InfiniTime firmware fork adds a text watchface and a Pomodoro app. The&#xA;repository packages the pinned firmware source and its build dependencies.&lt;/p&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#links&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Source code: &lt;a href=&#34;https://github.com/alwaldend/src/tree/master/projects/infinitime&#34;&gt;https://github.com/alwaldend/src/tree/master/projects/infinitime&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Fork code: &lt;a href=&#34;https://github.com/alwaldend/com_github_infinitimeorg_infinitime&#34;&gt;https://github.com/alwaldend/com_github_infinitimeorg_infinitime&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Upstream code: &lt;a href=&#34;https://github.com/InfiniTimeOrg/InfiniTime&#34;&gt;https://github.com/InfiniTimeOrg/InfiniTime&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Extra Watchface: &lt;code&gt;Text&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Extra app: &lt;code&gt;Pomodoro&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;C++, embedded&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#usage&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The root workspace declares the pinned firmware with &lt;code&gt;use_repo_rule&lt;/code&gt; in&#xA;&lt;code&gt;include.MODULE.bazel&lt;/code&gt;, preserving recursive Git submodules and the CMake&#xA;toolchain patch. Firmware source is fetched when referenced, rather than&#xA;during module resolution. Its Python/npm lockfiles and SDK archives retain&#xA;the upstream pins; Python and Node runtimes use the root workspace toolchains.&#xA;The project re-exports pip and npm with separate extension identities so&#xA;unrelated Python/npm targets do not fetch firmware to read those lockfiles.&#xA;The isolated pip extension declares the Linux x86_64 host platform used by&#xA;the pinned ARM compiler archive.&#xA;&lt;code&gt;bazel mod deps&lt;/code&gt; deliberately evaluates all extensions and can still fetch it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Infinitime</title>
				<link>https://www-staging.alwaldend.com/projects/infinitime/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://www-staging.alwaldend.com/projects/infinitime/</guid>
				<description>&lt;p&gt;An InfiniTime firmware fork that adds a text watchface and a Pomodoro&#xA;app. The build packages the pinned firmware source together with its&#xA;dependencies.&lt;/p&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Text watchface&lt;/li&gt;&#xA;&lt;li&gt;Pomodoro timer app&lt;/li&gt;&#xA;&lt;li&gt;Pinned firmware source and build dependencies&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
	</channel>
</rss>
