Hi Reza, On Mon, 06 Jan 2020 20:15:43 +0330 "Reza Alizadeh Majd" wrote: > + (add-before 'build 'patch-gio-launch-desktop > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((bin-path (assoc-ref outputs "bin") "/bin")) > + (setenv "GIO_LAUNCH_DESKTOP" > + (string-append bin-path "/bin/gio-launch-desktop")) > + #t))) I don't think that will work. According to the glib source code[1], the variable is read at runtime of the final program. What you could do is use your wrap-program in pcmanfm-qt, but with GIO_LAUNCH_DESKTOP (value like above) instead of PATH. That should fix pcmanfm-qt and I don't see any forward incompatibility or side effects introduced by it either. Also, glib would be unmodified. The downside would be that we would have to patch other broken programs one by one (after *finding* them). But I would still be in favor of that fix for now. Could you try it and send a patch? In the end I hope upstream realizes the insane situation that is the status quo and fixes it on their end (see https://gitlab.gnome.org/GNOME/glib/issues/1633 for a bug report of this problem). We could also use /bin/sh instead of gio-launch-desktop like the bug report suggests, but I'm not keen on increasing the attack surface so much, not after the security vulnerabilities in bash. The source code of gio-launch-desktop.c is very small and DOES NOT LINK TO GLIB so we could just make it an extra package independent of glib. Or we could just put it into the "out" output even though it's an executable. I've posted a patch to core-updates that does the latter[2]. [1] https://gitlab.gnome.org/GNOME/glib/merge_requests/95/diffs?commit_id=742efe6232aba81c2c52c229c900a57ec2afedfd [2] https://bugs.gnu.org/38994