How To Symlink Across Pupsaves/Installs
As per @bigpup's suggestion in this topic: https://forum.puppylinux.com/viewtopic.php?t=6257 I'm creating a new topic on the symlinking of themes, configurations and system/application files outside the pupsave to be used by other pupsaves and installs of the same puppy distro, or similarly based distros and re-masters.
Let's say that you have more than one pupsave for different computers, users, or variations of a distro (as in sometimes using a standard distro like fossapup and other times a re-master of fossapup for specialized purposes -- I do this frequently because I use @puddlemoon's jackalpup remaster of fossapup for pro-audio, but standard fossapup on less powerful machines that I use for daily business) In this scenario keeping changes to application configurations, themes, and other settings can be a full time job in that I may create a new look with jwm or gtk in my standard fossapup daily save, and then want to replicate it in my jackalpup save. I could copy all the files from one save to another, and that works fine. But I've developed another approach: symlinks to a directory on the "home" drive. This not only keeps changes consistent between saves and installs, but also keeps the pupsave sizes smaller.
Here's a basic example in fossapup:
JWM stores it's theme files in /root/.jwm/themes. I share this directory with different pupsaves in the following manner.
1) Create a directory on the home drive for shared systems. I call mine linxsys
2) Inside the linxsys folder I begin to create a mock directory structure of files that will be shared between pupsaves, and I keep it all straight by naming the top folder in the mock structure by appending the folder name with a dash "-"
First create the 'mock' /root directory
/mnt/home/linxsys/root-
Then the /.jwm directory underneath it
/mnt/home/linxsys/root-/.jwm
Then the /themes directory underneath
/mnt/home/linxsys/root-/.jwm/themes
3) Now that I have a jwm themes folder established outside my pupsave on the home directory, I'm ready to copy my /root/.jwm/themes/*.* files into it using whatever file manager is preferred. In ROX open two windows, one to the actual /root/.jwm/themes folder and the other to the mnt/home/linxsys/root-/.jwm/themes folder, then simply select all of the files in /root/.jwm/themes with the mouse and drag them to the newly created /mnt/home/linxsys/-root/.jwm/themes folder. When prompted choose "copy."
4) At this point I'm ready to symlink the folder in my pupsave to the folder outside the pupsave on the home drive. To be safe I'll create a backup of the themes folder, so I select /root/.jwm/themes in ROX, right-click the folder, and select menu>Dir 'themes'>Duplicate and name the duplicate folder something like themes-BKP.
5) Delete the actual folder root/.jwm/themes and then we're ready to symlink.
6) In ROX drag the /mnt/home/linxsys/root-/.jwm/themes folder to /root/.jwm and when prompted choose "link (absolute)"
7) Test to see that it all works, use JWMdesk to change jwm themes. All of the themes should appear in the theme changer dialog.
8) To share this with other pupsaves, reboot into a different pupsave and repeat steps 4-7.
This works well for me. I use it for all sorts of applications and browsers. Because I use a LibreWolf appimage for instance, which unlike @mikewalsh's portables does not have a script to save the LibreWolf profile and cache folders in it's own portable directory, I symlink those to my /mnt/home/linxsys/root- directory and that keeps my pupsave smaller, and quicker to backup. It also allows me to boot into different pupsaves which are also symlinked so all of the bookmarks and history, etc are shared between systems. This works with a multitude of applications and systems, BUT a word of caution:
You certainly need to take care in understanding your applications, which files are necessary to symlink, and which files are unique to a specific pupsave, especially in the case of system configurations. Backups of the pupsave are always recommended to fall back when moving and linking these kinds of files.
Syncing these files between different machines only requires the use of rsync, or grsync to keep the /mnt/home/linxsys folder up to date. When working on one computer, and making changes to these files, I will sync the folder using a usb storage medium. Using these methods I'm able to keep several computers and installs completely in sync. I'll explain my method in subsequent posts.