A hardlink is not a copy of a file. It is a coordinate file that points to the addresses on the harddrive. The actual data is not visible, - only the coordinate file. You can have as many hardlinks you want. They are all pointing to the same data. You have to delete all hardlinks if you want to delete the actual file. Because of its nature, it is not possible to have a hardlink on another filesystem. - And this is where I got trapped. Pup_save file is merging with pup_420. They act like one filesystem when running, but not when storing.
Next problem (sfs):
The new fixmenus script changes the syntax of the .desktop files. - BAD! If you change the syntax of the .desktop file, you also make a new .desktop file for those which are original stored in the Pup_420.sfs (or in such as ooo_420.sfs). It acts as described above with the hardlinks. Puppy cannot change anything in the Pup_420, so it has to make a new file in Pup_save. The Pup_save file is layered above Pup_420.
This means that changing syntax of the .desktop files using the fixmenus script FAILS. The answer could be to check whether the .desktop file actually points to a 'living' program, but honest - fixmenus is not the right place for this syntax improvement. I saw it as the solution until the .desktop standard got improved. It is obviously that it lacks info. (as the split between name - description and info about a desktop icon. Not only a 16x16 icon as at the moment.)
I have removed the syntax improvements from the fixmenus script. This may be executed as a standalone script. If Warren wants, he can execute it on his tree before building the iso. That is the correct place for such renaming.
Thank you, jrb
please try the attached fixmenus
- it builds symlinks in $HOME/my-applications/bin/
- it adds space between icon and text in menu.
Sigmund
Here is the script for making a split between name - description in the menu.
Code: Select all
#!/bin/sh
APPS="`ls -1 /usr/share/applications | tr '\n' ' '`"
for I in $APPS
do
APP="/usr/share/applications/$I"
sed -i -e "s/ - / /g" $APP #remove old split
#Split: avoid split in the following menu entries:
[ "`grep 'Categories=X-SetupWizard' $APP`" ] && continue #all setup wizards
[ "`grep 'Name=Puppy ' $APP`" ] && continue #entries starting with 'Puppy'
[ "`grep 'Name=Add ' $APP`" ] && continue #entries starting with 'Add'
[ "`grep 'Name=Set ' $APP`" ] && continue #entries starting with 'Set'
[ "`grep 'Name=Configure Xlock screen locking' $APP`" ] && continue
[ "`grep 'Name=Desktop drive icons manager' $APP`" ] && continue
[ "`grep 'Name=Desktop icon switcher' $APP`" ] && continue
[ "`grep 'Name=Format floppy disk' $APP`" ] && continue
[ "`grep 'Name=JWM configuration' $APP`" ] && continue
[ "`grep 'Name=Remaster Puppy live-CD' $APP`" ] && continue
[ "`grep 'Name=Wizard Wizard' $APP`" ] && continue
[ "`grep 'Name=Xautoconnect to wireless network' $APP`" ] && continue
NAME="`cat $APP | grep -m 1 ^Name= | cut -d ' ' -f 1 | cut -d '=' -f 2`"
sed -i -e "s/^Name=$NAME /Name=$NAME \- /" $APP
done