The importance of Keywords for the software center

In the software center we allow the user to search using case-insensitive keywords, for instance searching for ‘excel’ could match Libreoffice Calc or many other free software spreadsheet applications. At the moment we use the translated keywords set in the desktop file, any extra <keyword> entries in the AppData file, and then fall back to generating tokens from the name, summary and description using a heuristic. This heuristic works most of the time, but a human can often do much better when we know what the most important words are. I’ve started emailing maintainers who do not have any keywords in their application (using the <update_contact> details in the AppData file), but figured I should also write something here.

So, what do I want you to do? If you have no existing keywords, I would like you to add some keywords in the desktop file or the AppData file. If you want the keywords to be used by GNOME Shell as well (which you probably do), the best place to put any search terms is in the keywords section of the desktop file. This can also be marked as translatable so non-English users can search in their own language. This would look something like Keywords=3D;printer; (remember the trailing semicolon!)

The alternative is to put the keywords in the AppData file so that they are only used by the software center and not the desktop shell. You can of course combine putting keywords in both places. The AppData keywords can also be translated, and would look like this:


Of course, you don’t have to do a release with this fix straight away, and if you have a stable branch it would be a good thing to backport this as well if it does not add translated strings or you have no string freeze policy. Nothing bad will happen if you ignore this request, but please be aware that matches from keywords are ordered higher in the search results than other partial matches from the name or summary. You also don’t have to add keywords that are the same as the application name or package name, as these are automatically added as case insensitive search tokens. If you don’t have any keywords then your application will still be visible in the various software centers, but it may be harder to find.

Comments welcome.

Published by


Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

12 thoughts on “The importance of Keywords for the software center”

  1. If I’m not mistaken, one of the difference between the two methods presented is that the .desktop file permits to have a different number of keywords than in english, which is a good thing for i18n (there’s not always a one-to-one relation between two languages for describing the role of an application). So it should probably be highly preferred.

    1. Well, you can translate the AppData too, just use <_keyword> if you’re using intltool, or translate manually doing <keyword xml:lang=”it”>Videogioco</keyword>

      1. You’re missing the point, the problem is the *number* of keywords, that is not necessarily the same in all languages.

          1. I think screenshots should not be promoted: add-ons might be overly specific and it could detract from the first impression of the main app.

            OTOH, a package manager GUI or a webpage or whatever could be free to display those screenshots in some way with the add-on. [joke-based-on-stereotypes]Probably not a Gnome one, very likely a KDE one.[/joke-based-on-stereotype]

  2. > for instance searching for ‘excel’ could match Libreoffice Calc

    The AppData specification for <description> says “Do not use possibly trademarked product names when referring to competitors.” Which seems like good advice.

    Is it ok (or even recommended) to use the names of competing proprietary applications in <keywords>? This seems a bit more “gray-area”. And it seems like it would be useful (as in your example), especially for the important case of users new to Free Software.

    I know YANAL but I’d value your thoughts none-the-less…

    1. Yes, I think using competitors product name as a keyword (like “photoshop”) should okay in this instance and IIRC this is also what Fedora Legal said. I’d be much less happy recommending using the vendor name as a keyword, or even including the product name in the description. If you’re at all worried perhaps leaving them out is a good idea as what I say should really *not* be considered legal advice :)

Comments are closed.