<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/nix/host.nix, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/nix/host.nix?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/nix/host.nix?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-29T10:18:16Z</updated>
<entry>
<title>refactor(eer): install external-editor-revived via nix on the host</title>
<updated>2026-05-29T10:18:16Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-29T10:18:16Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=be3c6fda881bc11d5123d6b3a09ce9d250199b32'/>
<id>urn:sha1:be3c6fda881bc11d5123d6b3a09ce9d250199b32</id>
<content type='text'>
The AUR `external-editor-revived` PKGBUILD declares a hard `thunderbird`
dependency, which blocks removing the unused system Thunderbird binary
alongside the org.mozilla.thunderbird flatpak (and pacman's
`AssumeInstalled` is a CLI flag, not a pacman.conf directive, so the
previous workaround was nonfunctional).

Nixpkgs' `external-editor-revived` is just `rustPlatform.buildRustPackage`
plus a relocatable native-messaging manifest — zero mailer dep — so the
host gets it from nix instead.

* nix/host.nix: add `external-editor-revived` to `home.packages`. Kept
  out of `common.nix` so the remote-dev VM (which has no Thunderbird)
  doesn't carry the build closure.
* run_onchange_after_deploy-tb-eer.sh.tmpl: search
  `~/.nix-profile/{bin,lib/mozilla/native-messaging-hosts}` first and
  fall through to the legacy pacman paths. The chezmoi manifest-hash
  probe now checks the nix path too, so the hook re-runs cleanly when
  nix bumps the EER version.
* meta/base.txt: drop the `external-editor-revived` AUR entry and
  rewrite the comment to point at the nix declaration.
* etc/pacman.conf: revert the bogus `AssumeInstalled` directive
  (CLI-only, not pacman.conf).

On-host migration:

    home-manager switch --flake ~/dotfiles/nix#host    # picks up EER
    sudo pacman -Rns external-editor-revived thunderbird mpv
    chezmoi apply -v                                   # re-runs tb-eer hook
</content>
</entry>
<entry>
<title>refactor(nix): deployment in vm.nix only; host uses chezmoi for dotfiles</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=639f3cb82ef9f1e6dd0b47cf506ff3c09fd4a5a7'/>
<id>urn:sha1:639f3cb82ef9f1e6dd0b47cf506ff3c09fd4a5a7</id>
<content type='text'>
Per user decision: on the Arch host, chezmoi remains the single deployer
of $HOME dotfiles. nix/common.nix's xdg.configFile + sshConfig
activation + .zshenv home.file block was causing home-manager to fight
chezmoi on every nix-switch, materializing .backup files for nvim,
zellij, zsh, git, ghostty, direnv.

Resolution:

- nix/common.nix: drop the entire deployment block, drop the
  my.dotfilesPath option, drop the let..in dotfiles/link helpers.
  Module is now deployment-agnostic: only installs packages.

- nix/host.nix: drop my.dotfilesPath; explicit comment that chezmoi
  owns dotfile deployment on the host.

- nix/vm.nix: gains everything previously in common.nix's deployment
  block — xdg.configFile (nvim/zellij/zsh/git/ghostty/direnv),
  home.activation.sshConfig, home.file.".zshenv". The 'dotfiles'
  let-binding (= $HOME/.local/share/dotfiles) and 'link' helper move
  here too, since they're vm-only now.

Host runbook unchanged (`just sync`); first run after pulling will
just be a no-op nix-switch instead of a backup-file storm.
</content>
</entry>
<entry>
<title>fix(nix): parameterize dotfiles path per profile; rename dockerfile LSP</title>
<updated>2026-05-20T12:56:10Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-20T12:56:10Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=58f2d61be4c55c7cf7bdbb12f3fed6794e7481b5'/>
<id>urn:sha1:58f2d61be4c55c7cf7bdbb12f3fed6794e7481b5</id>
<content type='text'>
- common.nix hardcoded the runtime dotfiles checkout to
  ~/.local/share/dotfiles, which is correct for the remote-dev VM but
  not the Arch host (where the canonical clone lives at ~/dotfiles).
  ssh activation was failing with 'cannot stat
  /home/sommerfeld/.local/share/dotfiles/private_dot_ssh/config' on
  every host nix-switch.

  Promote the path to a typed option (config.my.dotfilesPath) and set
  it from each profile:
    nix/host.nix -&gt; $HOME/dotfiles
    nix/vm.nix   -&gt; $HOME/.local/share/dotfiles
  common.nix now wraps its config in 'config = { ... }' so the
  options can sit alongside.

- dockerfile-language-server-nodejs was renamed in nixpkgs to
  dockerfile-language-server; pick up the new name to silence the
  evaluation warning (the rename will eventually become a hard error).
</content>
</entry>
<entry>
<title>refactor(nix): promote remote-dev/ to nix/ with common/vm/host split</title>
<updated>2026-05-20T12:56:09Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-20T12:56:09Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=de5146c7976e1fb38e8d1f82c30544462d881100'/>
<id>urn:sha1:de5146c7976e1fb38e8d1f82c30544462d881100</id>
<content type='text'>
Restructures the Home-Manager profile to support both the Arch host and
the Ubuntu remote-dev VM from the same flake.

  - remote-dev/ → nix/ (hard rename; .chezmoiignore updated)
  - home.nix split into common.nix (shared), vm.nix (Mason runtime
    carve-outs + podman stack), host.nix (gpg scdaemon delegation to
    system pcscd)
  - flake.nix exposes homeConfigurations.{vm,host} via a mkProfile
    helper
  - rj alias in dot_zshrc updated to ~/.local/share/dotfiles/nix
  - bootstrap.sh / justfile updated to use #vm against the new path

The split is behaviour-preserving for the VM: vm.nix + common.nix
together carry the same package set as the previous home.nix.
host.nix is provisioned but not yet wired into bootstrap (phase p8).

Phase 1 of the nix-on-host migration plan.
</content>
</entry>
</feed>
