<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/dot_config/environment.d/10-nix-profile-path.conf, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/dot_config/environment.d/10-nix-profile-path.conf?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/dot_config/environment.d/10-nix-profile-path.conf?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-06-05T10:06:01Z</updated>
<entry>
<title>revert(systemd): drop redundant environment.d PATH file</title>
<updated>2026-06-05T10:06:01Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-05T10:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=67ab075d1dc12b2280cec38e39ca7d2df45642df'/>
<id>urn:sha1:67ab075d1dc12b2280cec38e39ca7d2df45642df</id>
<content type='text'>
The absolute %h/.nix-profile/bin/&lt;name&gt; ExecStart paths (previous commit)
fix unit startup without any PATH dependency. The remaining secondary
lookups those binaries make (wl-paste -&gt; cliphist, swayidle -&gt; swaymsg/
playerctl) are already covered by the sway config's existing
`systemctl --user import-environment PATH` (dot_config/sway/config), the
established mechanism that also feeds waybar's nix-provisioned pass/python3.

So environment.d/10-nix-profile-path.conf was a redundant parallel
mechanism. Remove it.
</content>
</entry>
<entry>
<title>fix(systemd): use absolute %h/.nix-profile/bin paths in user units</title>
<updated>2026-06-05T10:06:00Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-05T10:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=cd050f0bdfea14f031e4a671a366c77d4f62b19d'/>
<id>urn:sha1:cd050f0bdfea14f031e4a671a366c77d4f62b19d</id>
<content type='text'>
The previous environment.d fix was insufficient: even with the nix profile
on the --user manager's PATH (confirmed via `systemctl --user
show-environment`), bare-name ExecStart= still fails 203/EXEC. systemd's
--user manager does not resolve a bare ExecStart binary against the
imported/environment.d PATH.

Invoke each unit's main binary by absolute path %h/.nix-profile/bin/&lt;name&gt;
(waybar, swayidle, swayrd, inhibridge, wl-paste, wob). %h expands to $HOME
at unit load. Secondary lookups those binaries/scripts perform (cliphist,
swaymsg, playerctl) still rely on PATH, which environment.d provides — so
that file stays, with its comment corrected to reflect this split.
</content>
</entry>
<entry>
<title>fix(systemd): add environment.d PATH so user units find nix binaries</title>
<updated>2026-06-05T10:05:59Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-06-05T10:05:59Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=8bd9b4b1dde1274b5f23171610eed7c3396dad96'/>
<id>urn:sha1:8bd9b4b1dde1274b5f23171610eed7c3396dad96</id>
<content type='text'>
The user-leaf tools (waybar, swayidle, swayr, mako, cliphist, inhibridge,
wob, …) were migrated to the Nix home profile and their .service units
reference them by bare name. The systemd user manager does not source
~/.zprofile, so its PATH lacked ~/.nix-profile/bin and every bare-name
ExecStart failed with status=203/EXEC.

The sway config's `systemctl --user import-environment PATH` raced with
`systemctl --user start sway-session.target`; when the start won, units
launched with the default PATH. environment.d is read at manager startup
before any unit, closing the race deterministically.

Pick up via fresh login/boot or `systemctl --user daemon-reexec`.
</content>
</entry>
</feed>
