Tiny Core Linux

Tiny Core Extensions => TCE Talk => Topic started by: Jason W on April 19, 2010, 09:13:46 AM

Title: freedesktop standard for icons and .desktop files.
Post by: Jason W on April 19, 2010, 09:13:46 AM
Please mention here if any extensions are having issues displaying icons in any of TC's window managers/desktop environments and they will be addressed.  Be sure to fetch the extension fresh from the repo or update your existing ones before reporting issues.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: bmarkus on April 19, 2010, 09:31:09 AM
This is not mentioned, but it is for TC 2.11
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on April 19, 2010, 10:36:17 AM
For 2.11, thanks.

The part of the .desktop file to pay attention to is the Icon and X-FullPathIcon entries.  X-FullPathIcon is to support legacy window managers.  Here is the preferred format:

Icon=icon                       
X-FullPathIcon=/path/to/icon.png  

The best place to place the icon is in /usr/local/share/pixmaps/icon.png since that will also be picked up by freedesktop compliant WMs by the Icon=icon or Icon=icon.png entry.  The X-FullPathIcon entry needs the full path and the icon suffix (png,etc) but the Icon entry does not by freedesktop standards.  However, some DE's have an issue with themes when the full path is listed in the Icon entry.  So do not put the full path in the Icon field.  

Also, the .desktop file needs to share the same name as the extension.  If there are more than one .desktop files in an extension, then one of them needs to match the extension name and follow the above format.  The extra .desktop files that are of a different name do not have to follow the new format.

More info will follow, but this is how to adjust existing extensions and new ones need a .desktop file in /usr/local/share/applications that is in this format.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 01, 2010, 07:51:46 PM
Important change - Icon field needs to be Icon=icon rather than Icon=icon.png as not all desktop environments play well with Icon=icon.png, even though Icon=icon.png is freedesktop compliant.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: bmarkus on May 02, 2010, 01:33:52 AM
Important change - Icon field needs to be Icon=icon rather than Icon=icon.png as not all desktop environments play well with Icon=icon.png, even though Icon=icon.png is freedesktop compliant.

No,  Icon=icon.png is not freedesktop compliant.

There are two options:

1)

Icon=xxx

where xxx.png (or xxx.svg) is in the /usr/local/share/pixmaps directory or xxx is element of the active Icon Theme

2) an absolute path

Icon=/usr/local/share/pixmaps/xxx.png

I will add a guide to WIKI for extension creators.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 02, 2010, 05:37:43 AM
According to freedesktop standards, Icon=icon.png is compliant.  Look at "Example Desktop Entry File" section of the page below:

http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html

But even so, we are making efforts to accommodate all DE's even if they don't play well with all freedesktop compliant Icon entry formats. 
Title: Re: freedesktop standard for icons and .desktop files.
Post by: bmarkus on May 02, 2010, 06:22:17 AM
According to freedesktop standards, Icon=icon.png is compliant.  Look at "Example Desktop Entry File" section of the page below:

http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html

But even so, we are making efforts to accommodate all DE's even if they don't play well with all freedesktop compliant Icon entry formats.  

Good finding. I had a discussion with PCMan regarding icon handling in PCManFM2 and his view that this is not compliant.  This is a good point to continue discussion :)

Lets say, it is a bug in PCManFM2 and leave extensions as they are as this is working in other DE environment. PCManFM2 anyhow is a beta software. However, it is a relly a polite stuff to make TC repo work fine even with this :)
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 02, 2010, 06:36:39 AM
The upcoming 3.x repo has had it's desktop files converted to Icon=icon, so it is all good.  I guess that Icon=icon.png is perhaps semi deprecated in the DE development world, so new DE's may be moving away from it.  So we can't go wrong with Icon=icon.  2.x will get one final conversion soon also.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: maro on May 02, 2010, 03:16:59 PM
Until about 48h ago I did not had the slightest clue about .desktop files. In an attempt to change that I took a look around and stumbled over the fact that on the reference page (http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec) several links are available:

Why am I boring everybody with those details? One of the small differences between v1.1 (also available as a one page (http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html) document) is that the example entry has been changed from Icon=fooview.png to Icon=fooview.

Furthermore, I ran a check on the .desktop files in an Ubuntu 09.10 installation: there was no 'Icon=name.ext' entry to be found (they were all like 'Icon=name'). Lets just assume they are compliant with the spec.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: bmarkus on May 02, 2010, 05:13:38 PM
A draft specification is not an official. It is just a draft which can be changed.

I can imagine UBUNTU adjusted all packages to the draft, however if you just download packages in source and compile them, result is a mixture of Icon=xxx.png and Icon=xxx

Key question is the adaptation of the draft by the DE developers. Maybe UBUNTU is strong enough to force application developers to follow it. Anyhow, if you use a certain DE you have to accept its implementation way.

Also, example is one thing. Detailed text:

"Icon to display in file manager, menus, etc. If the name is an absolute path, the given file will be used. If the name is not an absolute path, the algorithm described in the Icon Theme Specification will be used to locate the icon."

It still leaves room for different interpretations.

At the very end question is not what is written in the standard but what and how is implemented in KDE, Gnome, Xfce4, LXDE. You need to adjust your system, your applications to work as expected when used independently what is in the papers :(
Title: Re: freedesktop standard for icons and .desktop files.
Post by: maro on May 02, 2010, 09:43:34 PM
bmarkus: Very valid points. Given my only paper-thin exposure to this matter I should have kept my mouth shut.

I've now had another brief look across a few live ISO images I have available and can confirm that there does not seem to be a strict rule: Knoppix (v6.2) for example has .desktop files with all kind of styles (e.g. "Icon=name", "Icon=local_directory/name.ext", and "Icon=/full/path/name.ext") and they all appear to work well with the default DE (i.e. LXDE, IIRC). Other distributions seem to be a bit "stricter". But as you pointed out it seems to be more a "convention" that is used amongst the developers and extension creators of a given distribution, and not so much a distribution and DE independent "standard".
Title: Re: freedesktop standard for icons and .desktop files.
Post by: bmarkus on May 02, 2010, 10:47:28 PM
Given my only paper-thin exposure to this matter I should have kept my mouth shut.

No, I don't think so. Referring to the UBUNTU was a good point showing acceptance of the 1.1-draft standard. :)
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 03, 2010, 06:58:29 PM
For the 2.x repo, the desktop files have been pretty much been converted for all but the Icon=icon thing.

So instead of converting the entire 2.x repo, I will spot fix extensions that are not working with wbar or standard freedesktop DE's or legacy WM's.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 09, 2010, 06:26:42 PM
A second conversion of the 3.x repo is being uploaded, preserving the original desktop files as was in 2.x with the addition of the Icon=icon standard.  Upon spot checking all seems pretty well.

Please list here any extensions that need further attention in regards to multiple menu entries or icons or whatever and it will be addressed.

Title: Re: freedesktop standard for icons and .desktop files.
Post by: Juanito on May 09, 2010, 08:28:53 PM
Since bluez works in 3.x, could you convert and upload the blueman extension from the 2.x repo?
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 09, 2010, 08:39:40 PM
Blueman is in the list being uploaded. 
Title: Re: freedesktop standard for icons and .desktop files.
Post by: bmarkus on May 10, 2010, 12:16:52 AM
A second conversion of the 3.x repo is being uploaded, preserving the original desktop files as was in 2.x with the addition of the Icon=icon standard.  Upon spot checking all seems pretty well.

Please list here any extensions that need further attention in regards to multiple menu entries or icons or whatever and it will be addressed.



Jason, thanks for the correction. It looks OK now after a short checkup :)

Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 10, 2010, 12:22:10 AM
Great.  Upload is going alphabetically and now on vlc, so will be done soon.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Arslan S. on May 10, 2010, 01:24:03 AM
Great.  Upload is going alphabetically and now on vlc, so will be done soon.

vlc-locale,vlc-dev,vlc-doc is missing in 3.x repo
also seed-dev,seed-doc is missing
libmtp,libmtp-dev is updated recently which is not reflected in 3.x

also in need of upload:
doxygen,doxygen-gui,doxygen-doc
cutecom
silgraphite,silgraphite-dev
openclipart-png,openclipart-svg,openclipart-openoffice3

Edit: more feedback
libgmp.tcz is renamed to gmp.tcz ? either adjust dep files or rename it back to libgmp
udevadm is still in 3.x repo and some dep files still contain it as dependecy
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Arslan S. on May 10, 2010, 03:08:35 AM
i have also some questions/suggestions

1-) what decides to create just a flwm menu entry but not wbar item ?
i think when there is no "X-FullPathIcon" in desktop file ?
2-) multiple flwm menu entries causes doubled entries (for some extensions, i.e. gnome-games) in lxde,xfce,gnome
solution is to add
NoDisplay=true item to these entries when required

Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 10, 2010, 03:13:04 AM
vlc-dev,doc,locale copied over.

seed copied over.

doxygen is already there, doxyget-doc is just copied over, doxygen-gui will need to be converted, will do that soon.

cutecom, silgraphite, libmtp are still in a holding area I was uploading to where they are going to be examined for 3.x compatibility.  Had not had time yet.  Openoffice and openclipart , 100MB or so each, I just uploaded to 2.x as I was out of town for a week.  openclipart just got copied over, Openoffice is not 3.x ready, will have to be converted first.  Had not had time, will do it soon.  

Will look into gmp  and udevadm issue.


Will answer the other questions tonight, have to go to work now.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Arslan S. on May 10, 2010, 03:26:36 AM
ok see you, just a note doxygen is updated recently
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Juanito on May 10, 2010, 03:36:11 AM
libgmp.tcz is renamed to gmp.tcz ? either adjust dep files or rename it back to libgmp

I'd changed the extension name to match the *tar.bz2 package name in 3.x

I thought I'd changed the dep file names, but I must have forgotten - I'll do it now, thanks for highlighting that.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 10, 2010, 09:36:19 AM
Arslan - I didn't mean to give such a short response as I was heading out the door.  I will get to those things tonight.  And yes, the X-FullPathIcon determines the icon for wbar.  I will look more into the Gnome/XFCE/LXDE issue with multiple menu entries, though LXDE seemed to handle them as expected. 

Also, kernel module extensions and most that depend on them were not copied over to 3.x.  Figured better not to start out with a broken repo and then try to fill in pieces.  But the quick conversion done last night may have uploaded old dep files that include things not copied over.  I will check on that when I make my own mirror tonight and run the usual checks on it.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 10, 2010, 05:35:57 PM
Arslan - everything on the list done except for openoffice being uploaded.

Could you make a desktop entry for cutecom and doxygen-gui and resubmit?

Thanks.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: maro on May 12, 2010, 05:09:31 PM
I guess this might be a new type of issue here: In 'hardinfo.tcz' there is a Categories=System;Icon=logo.png entry in the 'hardinfo.desktop' file. That is obviously not "kosher" and has the result that no icon is added to the 'wbar'.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 12, 2010, 05:30:43 PM
hardinfo:  fixed for 2.x and 3.x.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: maro on May 14, 2010, 01:21:33 AM
I wanted to find out whether TC 3.0alpha3 would still need the '/usr/local/tce.flwm' directory. I can "see" it gets created in '/usr/bin/flwm_topside_initmenu'. But how is it used? Is it really still required?

Anyway, for that test I tried to find a small extension (with a .desktop file) and stumbled across tctoolsmenu.tcz. This extension might be freedesktop compliant, but TC 3.0alpha3 (and TC 2.11) just ignored it. I guess that might be due to the fact that there is no 'tctoolsmenu.desktop' file. But I believe that might not be the only issue here. Possibly a FLWM-specific startup-file could be a work around, but maybe there is a better way. There is a startup-file, but what is this meant to do? What is the purpose of '/usr/local/share/desktop-directories/*'? There is also at least one file (i.e. 'tchelp.desktop') for which the 'Exec=' entry is now pointless.

Another extension I tried was flit.tcz. It made it into the 'Applications' menu of TC 3.0alpha3, but not on TC 2.11. I've not tried to analyze why that is, but it might be worth a further look.
Title: Re: freedesktop standard for icons and .desktop files.
Post by: robc on May 20, 2010, 01:04:49 PM
With the new .desktop standard in TC, are the tce.icons and tce.menu files still needed? Or are only the .desktop files needed?
Title: Re: freedesktop standard for icons and .desktop files.
Post by: Jason W on May 20, 2010, 01:11:15 PM
In 3.x, there is no /usr/local/tce.icons or /usr/local/tce.menu.

As well as the .desktop file, or at least the main one, needs to be the same name as the extension.  emeflm2.tcz needs /usr/local/share/applications/emelfm2.desktop for example, or else it will not support all window managers and wbar. 

Also, bmarkus has told me that the newest pcmanfm no longer requires the Icon field to be Icon=icon, it can be Icon=icon.png.  So we can relax that requirement it seems.

As well as the full path of icon for the entry to support non-freedesktop window managers:

X-FullPathIcon=/usr/local/share/pixmaps/opera10.png

This and the rest of the requirements I will try to gather and put into one place.