<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/dot_config/git/config, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/dot_config/git/config?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/dot_config/git/config?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-06-05T10:06:03Z</updated>
<entry>
<title>Add no-hooks rebase alias</title>
<updated>2026-06-05T10:06:03Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-05T10:06:03Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=af3b15af163231eb16feff46bbbba85729d07f31'/>
<id>urn:sha1:af3b15af163231eb16feff46bbbba85729d07f31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor git resign alias</title>
<updated>2026-06-05T10:06:03Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-05T10:06:03Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=44ef6219949675c6ab46b230a7f87fb8f6c9665f'/>
<id>urn:sha1:44ef6219949675c6ab46b230a7f87fb8f6c9665f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>perf(git): disable delta hyperlinks</title>
<updated>2026-05-22T09:41:21Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-22T09:41:21Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=148ec6044004941bc0be63fadea6f9be903c1671'/>
<id>urn:sha1:148ec6044004941bc0be63fadea6f9be903c1671</id>
<content type='text'>
Delta's hyperlink resolution shells out to git rev-parse for every
blob to build clickable file links, which is fine on bare metal but
death-by-fork on a slow VM — 'git diff' could take many seconds
while 'git diff | cat' returns instantly. Turn hyperlinks off; we
get clickable nothing but visible-everything-fast diffs.
</content>
</entry>
<entry>
<title>feat: add another work includeIf</title>
<updated>2026-05-14T09:59:45Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-14T09:59:45Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=41926591c513a42a30992a641e5d2875395c1c86'/>
<id>urn:sha1:41926591c513a42a30992a641e5d2875395c1c86</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(git): add resign alias</title>
<updated>2026-05-14T09:58:37Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-14T09:58:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=74b3cb9b574b3e4a88020b1b3eb45fcfa4d448be'/>
<id>urn:sha1:74b3cb9b574b3e4a88020b1b3eb45fcfa4d448be</id>
<content type='text'>
Rebases onto @{u} re-signing each commit with the current author
identity and key, while stripping any Co-authored-by lines. Hooks are
disabled (core.hooksPath=/dev/null) so chezmoi's post-commit hook
doesn't fire once per replayed commit.
</content>
</entry>
<entry>
<title>feat(remote-dev): add zoxide/clang-tools/node/uv/AI agents; bring git+ssh; SSH-format signing</title>
<updated>2026-05-14T09:58:14Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-14T09:58:14Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=db4c6bdcd2af6aa2b95f587974f34c0246f62cb8'/>
<id>urn:sha1:db4c6bdcd2af6aa2b95f587974f34c0246f62cb8</id>
<content type='text'>
home.nix:
- Add zoxide (fixes 'command not found' on shell start), clang-tools
  (no compiler driver), nodejs (Mason npm LSPs), uv (Mason python LSPs;
  does not install python3 in PATH, so Ubuntu's /usr/bin/python3 stays
  the system default), claude-code, github-copilot-cli.
- Refine the leaf-tools policy comment: explicit denylist of build-
  toolchain binaries that would shadow Ubuntu's via PATH, plus a
  carve-out for editor/AI runtimes (node, uv, clang-tools).
- Symlink ~/.config/git/{config,attributes,ignore} and ~/.ssh/config
  from the dotfiles tree.

dot_config/zsh/dot_zshrc: guard direnv/zoxide/fzf inits with
'command -v X &gt;/dev/null &amp;&amp;' so a fresh machine without one of them
no longer prints a stderr error on every shell start.

dot_config/git/config: append unconditional '[include] path =
~/.config/git/config.local' for machine-local overrides (used on the
remote-dev VM to switch to SSH-format signing via the forwarded
agent). Git silently skips missing include files.

remote-dev/README.md: document the update flow (config-only vs HM
rebuild), the single-shell leaf-tools policy, and the one-time VM
setup for SSH-format commit signing (allowed_signers + config.local,
ForwardAgent yes on the host).
</content>
</entry>
<entry>
<title>feat(git): global pre-push hook rejecting unsigned commits</title>
<updated>2026-05-13T12:43:34Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:34Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=0ee8f260727f3e88d26d06f59e5c2fa71211a06d'/>
<id>urn:sha1:0ee8f260727f3e88d26d06f59e5c2fa71211a06d</id>
<content type='text'>
Activated via core.hooksPath = ~/.config/git/hooks in the global
git config. The hook walks each ref being pushed (range: remote..local
or, for new branches, local --not --remotes) and checks %G? on every
commit. Accepts G/U/X/Y (good signature variants), rejects N/B/E/R
(no signature, bad, missing key, revoked).

Bypass: git push --no-verify

This repo overrides hooksPath to .githooks/ for its just-check
pre-commit gate, so a thin .githooks/pre-push delegates to the global
hook to keep the policy enforced here too.
</content>
</entry>
<entry>
<title>fix(git): allow self-signed cert for ProtonMail Bridge SMTP</title>
<updated>2026-05-13T12:43:24Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:24Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=215c027b2546aafab79f824eacded9c3f2c5cf09'/>
<id>urn:sha1:215c027b2546aafab79f824eacded9c3f2c5cf09</id>
<content type='text'>
The Bridge presents a self-signed cert on its 127.0.0.1:1025 STARTTLS
listener, so git send-email's default cert verification fails with
SSL_verify_cert. Setting smtpSslCertPath to empty disables chain
verification for this single, loopback-only endpoint.

Per https://git-send-email.io/#step-2 (Proton Bridge note).
</content>
</entry>
<entry>
<title>feat(git): configure git send-email via ProtonMail Bridge</title>
<updated>2026-05-13T12:43:24Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:24Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=3b69f8e3c6c1494da1ab85c65476efc90fa13dfb'/>
<id>urn:sha1:3b69f8e3c6c1494da1ab85c65476efc90fa13dfb</id>
<content type='text'>
Add a [sendemail] block targeting the local Bridge SMTP listener
(127.0.0.1:1025, STARTTLS) and a credential helper scoped to that URL
that fetches the password from pass (proton/bridge-smtp). The helper
command is public; the secret stays in the password store. The bridge
SMTP username (sensitive but not secret) goes in the per-identity
private overlay (~/doxfiles), not here.

Also pull in the Perl SMTP modules git send-email needs at runtime.
</content>
</entry>
<entry>
<title>refactor: restructure to chezmoi source state</title>
<updated>2026-04-21T00:23:18Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-04-21T00:23:18Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=d00bf2cb2d5087164fa509a4f20a2be62a519044'/>
<id>urn:sha1:d00bf2cb2d5087164fa509a4f20a2be62a519044</id>
<content type='text'>
Rename home/ contents to chezmoi naming conventions:
- dot_ prefix for dotfiles and dot-dirs
- private_dot_ for .gnupg and .ssh directories
- private_ for 0600 files (nym.pub)
- executable_ for scripts in .local/bin and display-toggle.sh
- symlink_ for mimeapps.list symlink
</content>
</entry>
</feed>
