75 fix, implemented in #76, unfortunately introduced a new bug. While the fix allows for a proper launching of certain applications, it unfortunately changes the mate-menu's execution context for every application until another launcher containing Path= directive is used. In my case majority of desktop files do not have it leading to launching applications in wrong working directiories after one with a Path= directive is used.
This can be easily demonstrated by launching an application with a desktop launcher containing Path= directive from mate-menu first and launching mate-terminal from mate-menu afterwards. It starts in path of the first launcher instead of shell default one (typically user's home directory)!
A better way to change working directory only for the spawned process probably needs to be implemented. Executing the launched application in a subshell comes to mind: (cd $WD_COMMAND; command) while removing the os.chdir() call in the execution environment. Alternatively (cd $WD_COMMAND && command)can be used for execution to fail if Path=-specified directory doesn't exist.
75 fix, implemented in #76, unfortunately introduced a new bug. While the fix allows for a proper launching of certain applications, it unfortunately changes the mate-menu's execution context for every application until another launcher containing
Path=
directive is used. In my case majority of desktop files do not have it leading to launching applications in wrong working directiories after one with aPath=
directive is used.This can be easily demonstrated by launching an application with a desktop launcher containing
Path=
directive frommate-menu
first and launchingmate-terminal
frommate-menu
afterwards. It starts in path of the first launcher instead of shell default one (typically user's home directory)!A better way to change working directory only for the spawned process probably needs to be implemented. Executing the launched application in a subshell comes to mind:
(cd $WD_COMMAND; command)
while removing theos.chdir()
call in the execution environment. Alternatively(cd $WD_COMMAND && command)
can be used for execution to fail ifPath=
-specified directory doesn't exist.