I just upgraded from an early 17.03 beta to 17.03 and the $mod+d key combination for invoking dmenu no longer works in i3.
The problem is that the paths to dmenu in the ${i3}/etc/config* files are hard coded when the config files are created and propagated to the user's .config/i3/config file by i3-config-wizard upon first logging in. At some point in the future, an upgrade causes the config file to point outside the current-system closure. This is certainly an error but won't be obvious until the path to the obsolete dmenu is garbage collected. In my case, I upgraded from 16.09 to 17.03 beta and then 17.03. Things seemed to be working so I garbage collected my original 16.09 installation which broke $mod+d as the path to the original 16.09 dmenu was now dangling. 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 That way, the path is still within the current-system closure and is guaranteed to exist if dmenu is installed. I believe the place to make the change is in the post fixup (lines 33-38 in nixpkgs/pkgs/applications/window-managers/i3/default.nix). I would be glad to issue a PR but I don't know how the substitution should change to result in /run/current-system/sw instead. Note: the path for i3status is also hard-coded and shouldn't be. Since there wasn't an update to i3status, it continues to work but is still wrong because it points outside of the current-system closure. Mark -- Mark Gardner --
_______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev