openSUSE:Packaging desktop menu categories
Documentation relates to the Freedesktop Desktop Menu Specification, version 1.1-draft, dated 31 March 2011, with changes made up to Apr 4 April 2014.
For information about packaging desktop file in openSUSE, look at the Packaging Guidelines, section Desktop files.
Some of the categories were renamed in the past. The old names are additionally mentioned as 'obsoletes' in the lists below. They are automatically renamed by the %suse_update_desktop_file macro.
There is no strict hierarchy in the categories. You can list as many categories and subcategories as you want, using ;
as a seperator. E.g. if your package is a printing utility, a text editor utility, and helps developing documentation, you could say Categories=Development;Utility;Documentation;Printing;TextEditor
Despite the above, /usr/lib/rpm/brp-suse.d/brp-30-desktop strictly enforces to always have *at least* one category followed by a subcategory. A correct minimal line looks like this:
Categories=Graphics;2DGraphics;
Note that there is no direct mapping from RPM Groups to XDG Categories.
Standard categories
Using recommended categories, you will get a desktop file, that is well sorted in all types of menus and in all GNU/Linux distributions.
Audio
Use these together with the Audio
category as in Categories=Audio;Player;
. Possible additional main category: AudioVideo
. Obsoletes Multimedia
.
AudioVideoEditing
HamRadio
Midi
Mixer
Player
Recorder
Sequencer
Tuner
AudioVideo
Use these together with the AudioVideo
category as in Categories=AudioVideo;Player;
. Possible additional main categories: Audio
and/or Video
. Obsoletes Multimedia
.
AudioVideoEditing
Database
DiscBurning
Midi
Mixer
Music
Player
Recorder
Sequencer
TV
Tuner
Development
Use these together with the Development
category as in Categories=Development;IDE;
.
Building
Database
Debugger
Documentation
— upstream did not assign any main category, SUSE allows it hereGUIDesigner
IDE
Profiling
ProjectManagement
RevisionControl
Translation
WebDevelopment
X-SuSE-Design
Education
Use these together with the Education
category, for example, Categories=Education;Astronomy;
.
Art
ArtificialIntelligence
Astronomy
Biology
Chemistry
ComputerScience
Construction
DataVisualization
Economy
Electricity
Engineering
— upstream did not assign any main category, SUSE allows it hereGeography
Geology
Geoscience
History
Humanities
ImageProcessing
Languages
— obsoletesLanguage
andX-KDE-Edu-Language
Literature
Maps
Math
MedicalSoftware
Music
NumericalAnalysis
with possible larger categoryMath
ParallelComputing
with possible larger categoryComputerScience
Physics
Robotics
is now a main categoryScienceSpirituality
Sports
Teaching
— do not use, not part of upstream spec yet, outside SUSE, onlyX-KDE-Edu-Teaching
is valid
Game
Use these together with the Game
category, as in Categories=Game;ArcadeGame;
.
ActionGame
AdventureGame
Amusement
— upstream did not assign any main category, SUSE allows it hereArcadeGame
BlocksGame
BoardGame
CardGame
Emulator
KidsGame
LogicGame
— however SUSE allows it here, upstream allows onlyPlatformGameArcadeGame
RolePlaying
— obsoletesRolePlayingGame
Shooter
Simulation
— obsoletesSimulationGame
SportsGame
StrategyGame
Graphics
Use these together with the Graphics
category, for example, Categories=Graphics;Viewer;
.
2DGraphics
with allowed additional keywordsRasterGraphics
andVectorGraphics
3DGraphics
OCR
with possible larger categoryScanning
Photography
Publishing
RasterGraphics
Scanning
VectorGraphics
Viewer
Internet
Do not use this category. Use Network
instead. It is not part of upstream specification. It was used together with the Network
category, as in Categories=Network;Email;
.
— obsoletesDialupDialUp
EmailFileTransferHamRadioInstantMessagingIRCClientMonitor
— obsoletesNewsNewsreader
P2PRemoteAccess
— obsoletesTelephonyTelephone
WebBrowserWebDevelopment
Multimedia
Do not use this category. Use Audio
, Video
and/or AudioVideo
instead. It is not part of upstream specification. It was used together with the AudioVideo
category, for example, Categories=AudioVideo;AudioMixer;
.
Midi
— obsoletesMixerAudioMixer
MusicAudioVideoEditing
— obsoletesPlayerAudioVideoPlayer
— fix the bug that video player goes into audio player section in kickoff menuVideo;Player
— obsoletesRecorderAudioVideoRecorder
— obsoletesDiscBurningBurning
CDJukeboxSequencerTunerTV
Network
Use these together with the Network
category, for example, Categories=Network;Email;
.
Chat
Dialup
Email
Feed
FileTransfer
HamRadio
IRCClient
InstantMessaging
Monitor
News
P2P
RemoteAccess
Telephony
VideoConference
WebBrowser
WebDevelopment
Office
Use these together with the Office
category, for example, Categories=Office;Presentation;
.
Calendar
Chart
ContactManagement
— obsoletesAddressBook
Database
Dictionary
with possible larger categoryTextTools
Email
Finance
FlowChart
PDA
Photography
Presentation
ProjectManagement
Publishing
Spreadsheet
Viewer
WordProcessor
Science
Use these together with the Science
category, for example, Categories=Science;Geology;
. In past, this main category was just a part of Education
. Now it is main category.
Art
ArtificialIntelligence
Astronomy
Biology
Chemistry
ComputerScience
Construction
DataVisualization
Economy
Electricity
Engineering
— upstream did not assign any main category, SUSE allows it hereGeography
Geology
Geoscience
History
Humanities
ImageProcessing
Languages
— obsoletesLanguage
andX-KDE-Edu-Language
Literature
Maps
Math
MedicalSoftware
NumericalAnalysis
with possible larger categoryMath
ParallelComputing
with possible larger categoryComputerScience
Physics
Robotics
Spirituality
Sports
Settings
Use these together with the Settings
category, for example, Categories=Settings;HardwareSettings;
.
Accessibility
DesktopSettings
HardwareSettings
PackageManager
Printing
Security
System
Use these together with the System
category, for example, Categories=System;Emulator;
.
— do not use, upstream proposesAppletUtility;Monitor;
orUtility;Clock;
for applets
— do not use here, upstream proposesArchivingUtility;Archiving;
— not supported any more, useBackupUtility;Archiving;
, see below
— do not use here, upstream proposes main categoriesDatabaseOffice
,Development
orAudioVideo
Documentation
— upstream did not assign any main category, SUSE allows it hereEmulator
FileManager
FileTools
Filesystem
— do not use here, upstream proposesHardwareSettingsSettings;HardwareSettings;
Monitor
is now a main categoryNetwork
— do not use here, upstream proposesPackageManagerSystem;PackageManager;
— do not use here, upstream proposesRemoteAccessNetwork;RemoteAccess;
— do not use, not part of upstream specScreensaverSecurity
— do not use, not part of upstream specSystemSetupTelephony
— do not use, use eitherUtility;TelephonyTools;
orNetwork;Telephony;
; obsoletesTelephone
TerminalEmulator
— do not use, not part of upstream specTrayIcon
— SUSE specific, not upstreamable, useX-SuSE-BackupUtility;Archiving;
Utility
Use these together with the Utility
category, as in Categories=Utility;TextEditor;
.
Accessibility
— however SUSE allows it here, upstream proposesAppletMonitor
orClock
for appletsArchiving
with allowed additional keywordCompression
Calculator
Clock
Compression
— not supported any more, see belowDesktopUtilityFileTools
only possible in combination withFileManager
. When used alone it is removed automatically in the build process!
— do not use here, upstream proposesPDAOffice;PDA;
Printing
— upstream is confusing, SUSE allows it hereMaps
— do not use here, upstream proposesSecuritySettings;Security;
orSystem;Security;
— do not use; console implementations should useShellSystem;TerminalEmulator;
, console only applications technology categoryConsoleOnly
Spirituality
— not supported any more, see belowSyncUtility
— do not use in this way, use eitherTelephonyUtility;TelephonyTools;
orNetwork;Telephony;
TelephonyTools
TextEditor
— now allowed by brp-30-desktopTextTools
— not supported any more, see belowTimeUtility
— not supported any more, see belowWebUtilityX-SUSE-DesktopUtility
— SUSE specific, not upstreamableX-SUSE-TimeUtility
— SUSE specific, not upstreamableX-SUSE-WebUtility
— SUSE specific, not upstreamableX-SUSE-SyncUtility
— SUSE specific, not upstreamable
Video
Use these together with the Video
category as in Categories=Video;Player;
. Possible additional main category: AudioVideo
. Obsoletes Multimedia
.
AudioVideoEditing
Player
Recorder
TV
Special categories
These categories define additional information that can help to build better menu.
Adult
— Application handles adult or explicit material.Core
— Important application, core to the desktop such as a file manager or a help browser.
Technology categories
In difference to standard categories, technology categories define a technology used for the application (e. g. graphics toolkit). This additional information helps to the system with picking the best default application for particular environment.
GTK
GTK;GNOME
GTK;XFCE
Qt
Qt;KDE
Motif
Java
ConsoleOnly
SUSE categories enforcement
In addition to required desktop rules, upstream also proposes a rule, that each category from the main category has a corresponding additional category, and vice versa. SUSE enforces this rules, as it makes possible to create well structured menus, without items “hanging” in the first menu level.
Examples
Valid examples
Categories=Office;Spreadsheet;
: Simple and straightforward. Office
is a correct main category for Spreadsheet
.
Categories=Office;Spreadsheet;Graphics;2DGraphics;
: This is a set of categories for an application that is intended to appear twice in structured menus. Office
is a correct main category for Spreadsheet
. Graphics
is a correct main category for 2DGraphics
.
Categories=Audio;Video;Player;
: This is a set of categories for an application that could appear twice in structured menus. Player
is a correct additional category for both Audio
and Video
. Well, your could think about adding main category AudioVideo
as well.
Invalid examples
: There is no relevant main category for Categories=Spreadsheet;Spreadsheet
.
: Categories=Graphics;Spreadsheet;Graphics
is an invalid main category for Spreadsheet
.
: Two main categories were picked without any additional categories specified.
Categories=Graphics;Utility;
: Categories=Office;Graphics;Spreadsheet;Office
is a correct main category for Spreadsheet
. But there is no additional category for Graphics
main category.
SUSE specific categories
In addition to the XDG Categories listed above, there are also some SUSE-specific categories that are not currently part of the specification. Those categories must be prefixed by "X-SuSE-"
. However, the prefix is not mentioned in the lists because the situation is evolving and the categories are becoming part of the specification. The %suse_update_desktop_file macro adds the prefix where needed.