<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/justfile, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/justfile?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/justfile?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-07-02T10:35:35Z</updated>
<entry>
<title>Add repo validation dev shell</title>
<updated>2026-07-02T10:35:35Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-07-02T10:35:35Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=694cd2fc4680ccea939c9569f0a76cf1deaa5d2d'/>
<id>urn:sha1:694cd2fc4680ccea939c9569f0a76cf1deaa5d2d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reduce Arch package surface</title>
<updated>2026-06-18T11:06:20Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-18T11:06:20Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=511793cba498f52b0f92904965ea5c9afa8b6ea4'/>
<id>urn:sha1:511793cba498f52b0f92904965ea5c9afa8b6ea4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move more host tooling to Nix</title>
<updated>2026-06-05T10:06:02Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-05T10:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=b0e83e2ee3fc328e55119ee7c1f09ad7ed20a635'/>
<id>urn:sha1:b0e83e2ee3fc328e55119ee7c1f09ad7ed20a635</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(just): chsh to nix-managed zsh after nix-switch</title>
<updated>2026-05-22T09:41:22Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-22T09:41:22Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=0c292694f37f107629b5287f96ebb945ff764b68'/>
<id>urn:sha1:0c292694f37f107629b5287f96ebb945ff764b68</id>
<content type='text'>
zsh now lives in nix/common.nix instead of meta/base.txt. Removing the
pacman zsh package leaves /etc/passwd dangling at /usr/bin/zsh, so new
login terminals die with 'shell not found'.

Mirror the chsh logic from nix/bootstrap.sh (which only runs on the VM
during first-time provisioning) into the nix-switch recipe so every
`just sync` / `just init` re-asserts the login shell — and the
host gets the same treatment as the VM.

Idempotent: skips when the shell already matches, skips when
~/.nix-profile/bin/zsh is missing (pre-bootstrap state).
</content>
</entry>
<entry>
<title>refactor(pkg): drop provider-resolution fallback in mark_explicit</title>
<updated>2026-05-22T09:41:22Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-22T09:41:22Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=dff883ec04c62dc4a111597aace1ce5972b7dc01'/>
<id>urn:sha1:dff883ec04c62dc4a111597aace1ce5972b7dc01</id>
<content type='text'>
Now that meta/*.txt is conventionally required to list installed
package names (not virtual providers — see preceding commit dropping
ttf-font-awesome in favour of the already-declared otf-font-awesome),
the intersection with pacman -Qq is unnecessary. Failing loudly on a
virtual-provider entry is actually useful: it surfaces a data-entry
mistake instead of silently masking it.
</content>
</entry>
<entry>
<title>fix(pkg): skip mark-explicit for packages resolved to a different provider</title>
<updated>2026-05-22T09:41:22Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-22T09:41:22Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=cf98e69d76cd952b2fd58fc9f77e46826ac941d0'/>
<id>urn:sha1:cf98e69d76cd952b2fd58fc9f77e46826ac941d0</id>
<content type='text'>
paru may resolve a declared name to a provider with a different package
name (e.g. ttf-font-awesome -&gt; otf-font-awesome). Calling
`pacman -D --asexplicit` on the declared name then fails with
'could not find or read package' and aborts the recipe.

Intersect the declared list with `pacman -Qq` before bumping reasons;
names not present in the local DB are silently skipped.
</content>
</entry>
<entry>
<title>fix(pkg): mark declared packages as explicit on apply</title>
<updated>2026-05-22T09:41:22Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-22T09:41:22Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=b7b2f2d54261cc77be3658463d58b621ae29e1e6'/>
<id>urn:sha1:b7b2f2d54261cc77be3658463d58b621ae29e1e6</id>
<content type='text'>
`paru -S --needed` skips packages already on disk, so anything pulled
in transitively first and *later* added to meta/*.txt stays marked as
'installed as a dependency' in the local pacman DB — and keeps showing
up under `pacopt`.

After each install pass, force the declared set to 'explicitly
installed' via `pacman -D --asexplicit`. This treats meta/*.txt as
the source of truth for install reason: anything listed there is
explicit, anything else is a transitive dep.

Idempotent on already-explicit packages (pacman just prints 'install
reason is already explicit', which we discard).
</content>
</entry>
<entry>
<title>style(justfile): apply just --fmt (blank line between nix-update doc comments)</title>
<updated>2026-05-20T13:01:04Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-20T13:01:04Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=b3cc23dee9e8efbc89cec8f88de6618c852bcd64'/>
<id>urn:sha1:b3cc23dee9e8efbc89cec8f88de6618c852bcd64</id>
<content type='text'>
Just's formatter inserts a blank line so only the immediately-adjacent
comment serves as the recipe's doc string. Pre-existing drift, surfaced
when CI added 'just check-fmt' to the pipeline.
</content>
</entry>
<entry>
<title>justfile: add nix-update recipe, wire into update</title>
<updated>2026-05-20T12:56:11Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-20T12:56:11Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=ee67bdd9fd4817f5b5c2a973342f21c0bc480919'/>
<id>urn:sha1:ee67bdd9fd4817f5b5c2a973342f21c0bc480919</id>
<content type='text'>
Refreshes flake.lock (nixpkgs + home-manager) and re-activates the
profile. Plugged into the existing 'just update' aggregate so a weekly
'just update' bumps pacman/AUR + flatpak + nix in one go.
</content>
</entry>
<entry>
<title>drop residual Mason references after p6 migration</title>
<updated>2026-05-20T12:56:11Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-20T12:56:11Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=ea3e273d4221720f932d401a64d0881c7b23263b'/>
<id>urn:sha1:ea3e273d4221720f932d401a64d0881c7b23263b</id>
<content type='text'>
- zsh: remove ~/.local/share/nvim/mason/bin from PATH
- justfile: update comments to reflect Mason removal
</content>
</entry>
</feed>
