http://bkhome.org/blog/?viewDetailed=02851
Screenshot attached, with Ziggy user interface.
If anyone wants to try this, you have to grab all the latest scripts out of /usr/local/petget, see the link to the online Woof repo.
You also need to install my collection of 16x16 icons, again see link in blog post.
After installing the icons, you need to update the GTK icon cache:
Code: Select all
# gtk-update-icon-cache -f /usr/share/icons/hicolor
My PET package has 532 icons, 3788 symlinks, intended to handle just about any application that the PPM will encounter. However, it does increase the size of Puppy a lot.
if we just want the nice visual affect of seeing icons, I think that a selection of less than 100 would be adequate. Rather than trying to have a unique icon for so many apps, have many more generic icons.
For example 'audioapp.xpm' and 'audioutil.xpm' could be generic icons, with many symlinks to them, for example 'audacious.xpm' could be a symlink to audioapp.xpm'. Or, it could be png images -- I used xpm, see my post about that:
http://bkhome.org/blog/?viewDetailed=02850
However, many important apps could have their own icons, to draw attention to themselves. In particular, those that we recommend for use with Puppy. Firefox for example.
There would still be a gadzillion symlinks, but in a squashfs .sfs I think they pack in very small.
The images have to be as tiny as possible. I created 16x16, typically 600 bytes as xpm or 250 bytes as png, however, I think it might be better to go for 24x24 as when it gets too small it becomes a bit ridiculous you can't see what the icon represents.
To create really tiny icons, for example, 24x24 with 16 colours, it is good to start with svg icons. Here is a script that automates it, if you have a directory of svg icons:
Code: Select all
#!/bin/sh
#INPATH='open_icon_library-full/icons/svg/apps'
#INPATH='G-Flat-SVG/scalable/apps'
INPATH='svg-in'
for ONESVG in `find $INPATH -type f -name '*.svg' | tr '\n' ' '`
do
ONEBASE="`basename $ONESVG .svg`"
echo "$ONEBASE"
rsvg-convert -w 24 -h 24 -o /tmp/temppng.png $ONESVG
sync
pngtopnm /tmp/temppng.png | pnmquant 16 | ppmtoxpm > /tmp/tempxpm.xpm
sync
sPTN='s%" c black"%" c None"%'
sed -e "$sPTN" /tmp/tempxpm.xpm > xpm-24x24-alpha/${ONEBASE}.xpm
sync
done
This is interesting stuff, but I have to go back onto all my other Puppy development work. I am throwing this one out there for someone who is interested!
The challenge will be to get the size of the icons PET package right down. It is currently 211KB.
There are collections of svg app icons, I posted a link to one of them, but there are others. You might wonder, why not just use svg icons directly? -- they are too big. Unless someone can figure out a way of making them smaller, down about 600 - 900 bytes uncompressed to compete with xpm. But then, the trade-off is they render very nice.