puppylinux-woof-CE / woof-CE

woof - the Puppy builder
GNU General Public License v2.0
396 stars 282 forks source link

Add icon theme to ptheme #759

Closed 01micko closed 8 years ago

01micko commented 8 years ago

It would be nice if we could tack on the icon theme to the gtkrc file. I have a couple of nice 'pthemes' but are bit bloated because of the icon theme so I intend to offer them as sfs packages.

Here is a one liner to find all the icon themes at the standard location:

find /usr/share/icons -type f -maxdepth 2 -name 'index.theme'|sed -e 's/^/"/' -e 's/$/"/'| xargs grep 'Name='|cut -d '=' -f2

The above finds themes with spaces in the name (pipe through sed). Below is my output - but we should filter out the fallbacks ("hicolor" and "locolor").

Breeze Dark
Breeze
Hicolor
Oxygen
Vibrantly-Simple

It's then just a matter of tacking that onto the gtkrc file:

echo  -e "gtk-icon-theme-name = \"$my_chosen_theme\"" >> ~/.gtkrc-2.0

The logic is the only catch. It must be written only after switch2 has done its thing.

zigbert commented 8 years ago

If you like, I can initiate adding of gtk-icons-themes to pTheme, but please tell me where I can download a theme to work/test with.

Are you suggesting that we build our own theme based on the themes in /usr/share/pixmaps/puppy? I guess it will give an improved look in the touch-themes where icons are scale up. Does there exist a list telling what icons a theme should contain. I can make the missing icons...

01micko commented 8 years ago

Just search "icon-theme" in ppm. Any one will do. Probably gnome is the most comprehensive.

Are you suggesting that we build our own theme based on the themes in /usr/share/pixmaps/puppy?

I think @technosaurus first suggested something like that. All the standard gtk icons are necessary but I don't know how to build the database (I think the icon.theme file gives a clue). Naming is the important thing and there will be a lot of symlinks. But that can be all scripted and sizes down to 16x16 can all be adjusted by script with the 'viewport'.

I'm sure there are tutorials around.

zigbert commented 8 years ago

It shouldn't be hard to add gtk-icons-theme support to pTheme, but I have not been able to set a new theme...

Terminal output:

# find /usr/share/icons -type f -maxdepth 2 -name 'index.theme'|sed -e 's/^/"/' -e 's/$/"/'| xargs grep 'Name='|cut -d '=' -f2          
GNOME
Hicolor

This is how it looks after X is restarted: gnome_icon_theme

01micko commented 8 years ago

You're right! Gnome wasn't a good suggestion (I didn't try it). I did however just try Faenza and it does work. It is rather bloated (includes several themes) but there are much lighter themes around. I might hunt some and package them.

01micko commented 8 years ago

Does there exist a list telling what icons a theme should contain. I can make the missing icons...

Yes: Standard from freedesktop.org

Yes it is old, but the spec for gtk-2.0 hasn't changed much I believe. Many icons can be simply symlinks that can be generated at "compile time". Don't be too concerned with naming either. I will make a script from that list with the appropriate names/categories. I already have a lot of mime type icons so don't start there!!! (I'll post them soon).

What I would suggest is leave them in /usr/share/pixmaps/puppy and the theme can be built as part of the woof process.

zigbert commented 8 years ago

Got Faenza working. pTheme is now ok with gtk-icons-theme, but I still has some work with ptheme_gtk. The set icon-theme in ptheme has to be parsed to ptheme_gtk...

zigbert commented 8 years ago

A quick review of the iconlist at freedesktop.org shows that there are a few icons missing in /usr/share/pixmaps/puppy/ :-D

Making a complete icon-set for gtk will take some time... What is the benefits of such a major task?

01micko commented 8 years ago

unified look of icons - ok - but I don't think that alone is enough to motivate me for such a task

Yes a big task! I tend to agree that your time is better spent elsewhere.

Thanks for updating ptheme.

01micko commented 8 years ago

Yes a big task! I tend to agree that your time is better spent elsewhere.

Perhaps mine too.. ( @zigbert ) .. however..

icons

Recognise these?

A simple script builds the lot

More to come!

zigbert commented 8 years ago

Nice. What is the grand plan? Don't hesitate to ask me to make requested svgs. If the benefit of a svg icon-theme is clear, we should set it as a long term goal.

I see many programs (as geany) put icons inside /usr/share/icons/Hicolor/. Do these rely on Hicolor directories structure. I have put pmusic-icons inside Hicolor as well. Maybe /usr/share/pixmaps is a better place...

Your Rox-screeny shows vector icons with correct size (22x22px?). When using a svg-icon directly in gtkdialog like /usr/share/pixmaps/puppy/add.svg, it shows up with its defined 100x100 px. Do the Rox-code fix this scaling issue, or have you defined the size elsewhere?

01micko commented 8 years ago

Nice

Thanks.

What is the grand plan?

See issue #671

PVM gets its icons from the icon theme. Now we can match that for a better aesthetic. I haven't tried yet but my little "gtksplash" proggy (written in C) is a great test bed.

 gtksplash -s "hello disk" -c green -f "Sans 48" -i gtk-harddisk

harddisk

Most work but some don't; a bit perplexing why but never mind for now. Maybe @technosaurus will know.

I have started a git repo: https://github.com/puppylinux-woof-CE/puppy_icon_theme

Download the tarball and build it your self :smile: .. it's very easy. Just put the resulting directory into /usr/share/icons/.

The icons are all scaled with a viewbox so are the correct size.

I see many programs (as geany) put icons inside /usr/share/icons/Hicolor/. Do these rely on Hicolor directories structure. I have put pmusic-icons inside Hicolor as well. Maybe /usr/share/pixmaps is a better place...

Hicolor and Locolor are fallback themes. usually an GTK app builder will place her/his icons in there and usually Inherits=Hicolor is specified in the icon.theme file as the fallback. probably /usr/share/pixmaps is better for just one icon.

01micko commented 8 years ago

Pup Volume Monitor icons work :tongue:

Just a small issue with a broken 'mounted' icon but I'm sure if I scour the source code I can find it and add it.

pvm

01micko commented 8 years ago

Getting close now...

pvm2

zigbert commented 8 years ago

2 questions:

01micko commented 8 years ago

Well, if the "Puppy Standard" theme is set in .gtk2rc then all widgets get the icons anyway - geany even gets one as its default icon! (edit.svg)

Some icons are not used so some will have to stay in /usr/share/pixmaps/puppy

I'm not sure if this new 'icon-theme' is mature enough for a daily use as yet - soon though. Still lots of mimetypes missing and as said some don't work at all (about.svg is a notable one).

I'm also thinking to make the icon-theme entirely optional which means if it is included then there will be redundancy - but they are so small it barely bloats the ISO image. In this case /usr/share/pixmaps/puppy should be maintained as and where it is.