From 88f84c08d7ade406e0c49a73edab19f3501b4083 Mon Sep 17 00:00:00 2001 From: Stefano Mazzucco Date: Thu, 2 May 2019 22:27:52 +0100 Subject: [PATCH] awesome: use makeWrapper rather than wrapProgram Using wrapProgram makes so that the generated "awesome" wrapper duplicates its command line options at every restart. As @psychon puts it: > AwesomeWM restarts via execvp(argv[0], argv). In NixOS, wrapProgram is used > to generate a wrapper around the real binary. wrapProgram calls makeWrapper > with --argv0 '$0'. I guess this is what makes awesomeWM run the wrapper again > on restart. Without this --argv0 awesomeWM would directly restart itself > instead of the wrapper, I think. --- pkgs/applications/window-managers/awesome/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix index fa86257a1a95..bbe514144a1a 100644 --- a/pkgs/applications/window-managers/awesome/default.nix +++ b/pkgs/applications/window-managers/awesome/default.nix @@ -48,7 +48,10 @@ with luaPackages; stdenv.mkDerivation rec { LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;;"; postInstall = '' - wrapProgram $out/bin/awesome \ + # Don't use wrapProgram or or the wrapper will duplicate the --search + # arguments every restart + mv "$out/bin/awesome" "$out/bin/.awesome-wrapped" + makeWrapper "$out/bin/.awesome-wrapped" "$out/bin/awesome" \ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ --add-flags '--search ${lgi}/lib/lua/${lua.luaversion}' \ --add-flags '--search ${lgi}/share/lua/${lua.luaversion}' \