@peppyy :-
Hm. Okayyy....
I would have expected the XDG protocol stuff used in the launcher - which MochiMoppel helped develop - would keep everything self-contained. In combination with the 'HERE' read-link trick (which Fred pioneered), it lets you set the portable directory AS the user's $HOME directory, then creates all the config stuff inside that.
Most apps, it seems, create a certain number of config/profile directories/files on first run. The thing with SweeetHome3D, here, is that it's then creating further config directories at a later date, as & when things like plugins get added. From the look of things, the XDG desktop stuff is not picking up on this, so the app is therefore inserting them into the regular filesystem instead.
I have come across this before, on occasion. Sometimes, there just IS no way round it.
However, we can perform a "workaround" here, which will keep /root/.eteks within the portable.
- Copy /root/.eteks into the portable directory, and delete it from /root itself. (It's a 'hidden' directory, so use ROX's 'eye' to show these in order to confirm it's been copied correctly BEFORE deleting the original).
- Add the following to the 'LAUNCH' script:-
After
Code: Select all
HERE="$(dirname "$(readlink -f "$0")")"
.....add
Code: Select all
#
mkdir -p $HERE/.eteks 2> /dev/null
ln -s $HERE/.eteks /root/.eteks
At the very end of the script, leave a line and add
The final item should look like this:-
Code: Select all
#!/bin/sh
#
# Launch SweetHome3D.....
#
HERE="$(dirname "$(readlink -f "$0")")"
#
mkdir -p $HERE/.eteks 2> /dev/null
ln -s $HERE/.eteks /root/.eteks
#
XDG_CONFIG_HOME=
XDG_CACHE_HOME=
XDG_DATA_HOME=
HOME="$HERE"
#
# Determine kernel release...
uname -r > /tmp/kernel.txt
UNAME=$(cat /tmp/kernel.txt)
# Launch with official Nvidia driver...
if [ -f "/lib/modules/$UNAME/kernel/drivers/video/nvidia.ko" ]
then
"$HERE/SweetHome3D-7.2/SweetHome3D-Java3D-1_5_2" "$@"
fi
# Launch with 'nouveau'...
if [ ! -f "/lib/modules/$UNAME/kernel/drivers/video/nvidia.ko" ]
then
"$HERE/SweetHome3D-7.2/SweetHome3D" "$@"
fi
#
rm -f /root/.eteks
This will link /.eteks into /root before firing it up. SweetHome3D will find the directory where it expects to, then when you close the app it will delete the link. /.eteks has never left the portable directory, but will be "in position" when needed.
Let me know if that works for you.
Mike. 