I've got some issue with paths needing to be full in some instances. E.g. I'm using the Signature Switch addon, but its settings use full paths.
The way I got round it previously was to set the external disc's drive letter to some specific one (e.g. J). Then all the full paths always point to the correct place. However, I don't always have the privileges to adjust such things on all PCs.
And trying to change that setting to some relative path doesn't work either. Is there perhaps some proggy which can load at PA's start which would search through some specified files and modify the drive letter found in these settings to the drive on which PA is installed?
Set it to the full path in the app. The launcher will adjust it as you move PCs as long as the extension stores it in prefs.js.
Sometimes, the impossible can become possible, if you're awesome!
No it does not!
E.g. I've got 3 different signatures, each is saved under the profile as a html file. Signature Switch is set to use all 3, so I can change the message's signature through a right-click action.
However, when I set this up the drive on which PA is installed had a drive letter of J:. So the "full path" saved in the settings file is:
J:\PortableApps\ThunderbirdPortable\Data\profile\signatures\*.html
Now when I plug that drive into another PC, the drive letter becomes the next available. So I usually go and change this to J again. But in some cases the user account does not have enough privileges to do so. E.g. the PC I'm on now has that drive as E. And the signatures are all greyed out in the right-click menu. SigSw's settings also indicate that the files are not found, so the path should now be:
E:\PortableApps\ThunderbirdPortable\Data\profile\signatures\*.html
I can go and browse to them again, but then I'll need to do so yet once more when I'm back at another PC. What I'm after is something which either adjusts all the settings to the current drive letter or make all settings refer to relative paths from the current app's path.
If the extension is storing it in the prefs.js file like it's supposed to, it will get adjusted. If it's not, the extension won't be portablized.
Sometimes, the impossible can become possible, if you're awesome!
Here is the extract from the prefs.js file:
user_pref("extensions.signatureswitch.signatures", "Irné*E:\\PortableApps\\ThunderbirdPortable\\Data\\profile\\signatures\\Irne.html* -----*-*-*-|DSA-ZA*J:\\PortableApps\\ThunderbirdPortable\\Data\\profile\\signatures\\DSA-ZA.html* -----*-*-*-|RSL*J:\\PortableApps\\ThunderbirdPortable\\Data\\profile\\signatures\\RSL.html* -----*-*-*-|ESA*E:\\PortableApps\\ThunderbirdPortable\\Data\\profile\\signatures\\ESA Signature.html* -----*-*-*-");
Notice the 1st file I've browsed manually. The other 2 are still pointing to the J: drive. The 4th is a new one I added just now.
That's a very odd format to store a path in prefs.js. Seems like they were trying to reinvent the wheel for some strange reason. It's definitely not like any other extension, which is why it's being missed. If it were in the form of user_pref("extensions.signatureswitch.signature1", "E:\\PortableApps... it would be switched automatically by the launcher (that's the format that nearly every extension uses, that or "file:///E... which is also automatically updated).
I'd suggest using a relative path in the extension and see if that works. If not, you could request that they add support for it or use a more standard way of storing paths.
Sometimes, the impossible can become possible, if you're awesome!
I tried manually editing the prefs.js to use relative paths, but no matter what I try (relative from the signatures folder as ".\\filename.ext" all the way down to the root folder - i.e. just without the J: prefix) it fails to find the html file.
I think the reason behind the strange storage is that each item has several data members: Name, Path, Shortcut Key, Recipient AutoSwitch, etc. I think that might be a bit difficult to implement using only one value per set of data - otherwise they'd need signature1name, signature1path, signature1shortcut, signature1auto1, signature1auto2 ...
Though I'll go ask the addon's creator if there's something they could do.
It was an Id10T error! I should've gone to the extensions FAQ sheet the 1st time:
http://mozext.achimonline.de/signatureswitch_directory_variables.php
This very question is number 14 in the list.