[Nix-dev] paths in user's i3 configs broken by upgrade

Guillaume Maudoux (Layus) layus.on at gmail.com
Wed Apr 5 13:44:23 CEST 2017


On 05/04/17 03:46, Profpatsch wrote:
> On 17-04-03 04:25pm, Mark Gardner wrote:
>> Instead of:
>>
>>      bindsym $mod+d exec
>> /nix/store/04sx6lx7hssid7a6iwdbdvxbkp25xsx1-dmenu-4.6/bin/dmenu_run
>>
>> I think it should be to be:
>>
>>      bindsym $mod+d exec /run/current-system/sw/bin/dmenu_run
> The problem with /run/current-system is
> that it’s nixOS only.
> The package should work on e.g. Darwin as well.
>
> So probably use `/usr/bin/env dmenu_run` and similar.
>

User dotfiles are not managed by nix. ~/.i3/config is outside of the nix 
store, and the paths it contains are not gc roots.
We should simply revert https://github.com/NixOS/nixpkgs/pull/12873, it 
is not the right way to handle this.

It was introduced after a discussion in 
https://github.com/NixOS/nixpkgs/pull/12463, to avoid propagating dmenu2 
and i3bar when they are not needed. There is certainly an issue with 
environment.systemPackages containing too many packages, but this should 
not be solved by dirty hacks like this one.

I propose to add dmenu and i3status to 
$out/nix-support/propagated-user-env-packages, with an option to the i3 
package to disable it.
If you do not want these two convenient packages, just "i3.override { 
exportTools = false; }" somewhere. Who cares about dmenu and i3status 
being added on a gui system anyway. They are very small.

We should move this discussion to a github issue anyway.

-- Layus.


More information about the nix-dev mailing list