The `dmenu` package includes two binary programs, `dmenu` and `stest`,
and two shell scripts, `dmenu_run` and `dmenu_path`. `dmenu_run`
invokes `dmenu` and `dmenu_path`, and `dmenu_path` invokes `stest`.
`dmenu_run`'s invocation of `dmenu` was patched to run it by its full
store path, but its invocation of `dmenu_path` and `dmenu_path`'s
invocation of `stest` were not.
If `dmenu_path` and `stest` were not in the set of system packages or
otherwise in the `PATH`, this situation would result in `dmenu_run`
opening a dmenu instance with no menu entries (which would normally be
generated by `dmenu_path`, which `dmenu_run` couldn't find, as it was
running it by `PATH` lookup).
This commit fixes the package to also patch the invocation of
`dmenu_path` in `dmenu_run` and the invocations of `stest` in
`dmenu_path` to invoke those programs by their full store paths.
I have tested this change on NixOS.
In line with the Nixpkgs manual.
A mechanical change, done with this command:
find pkgs -name "*.nix" | \
while read f; do \
sed -e 's/description\s*=\s*"\([a-z]\)/description = "\u\1/' -i "$f"; \
done
I manually skipped some:
* Descriptions starting with an abbreviation, a user name or package name
* Frequently generated expressions (haskell-packages.nix)
is extended using patches http://tools.suckless.org/dmenu/patches/ this
argument makes it easier to extend dmenu by doing:
dmenu.overwritte {
patches = [
./dmenu-4.4-follow-focus.diff";
];
};
If dmenu isn't installed in the user environment, dmenu_run will fail
because it searches $PATH for its own binaries.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>