openSUSE:Packaging desktop menu categories
tagline: From openSUSE
- Aeneas jaissle/PHP
- AppStore
- Build Service cross distribution howto
- Build Service Tips and Tricks
- Build Service Tutorial
- Creating a changes file (RPM)
- Firewalld/RPM Packaging
- How to detect Tumbleweed
- Java jpackage-utils
- Java RPM Macros
- Mvyskocil/Shared library packaging policy
- Package dependencies
- Package description guidelines
- Package group guidelines
- Package maintainership guide
- Package naming guidelines
- Package security guidelines
- Package source verification
- Packaging Bundler
- Packaging checks
- Packaging Conventions RPM Macros
- Packaging desktop menu categories
- Packaging Fonts
- Packaging Games
- Packaging Go
- Packaging guidelines change process
- Packaging Haskell
- Packaging init scripts
- Packaging Java
- Packaging Lisp
- Packaging Lua
- Packaging Multiple Version guidelines
- Packaging nodejs
- Packaging Patches guidelines
- Packaging Perl
- Packaging PHP
- Packaging Python
- Packaging R
- Packaging Ruby
- Packaging scriptlet snippets
- Packaging vdr
- Packaging wxWidgets
- Packaging XML Schemas and Stylesheets
- Packaging/Users And Groups
- Patches Guidelines for X11:XOrg Project
- RPM conditional builds
- Ruby Gem Strategies
- Rust
- Shared library packaging policy
- Specfile guidelines
- Systemd packaging guidelines
- Packaging guidelines
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.
Contents
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 here -
GUIDesigner
-
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 here -
Geography
-
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 categoryScience -
Spirituality
-
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 here -
ArcadeGame
-
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
-
Email -
FileTransfer -
HamRadio -
InstantMessaging -
IRCClient -
Monitor -
— obsoletesNewsNewsreader
-
P2P -
RemoteAccess -
— obsoletesTelephonyTelephone
-
WebBrowser -
WebDevelopment
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
-
Music -
AudioVideoEditing -
— obsoletesPlayerAudioVideoPlayer
-
— fix the bug that video player goes into audio player section in kickoff menuVideo;Player -
— obsoletesRecorderAudioVideoRecorder
-
— obsoletesDiscBurningBurning
-
CD -
Jukebox -
Sequencer -
Tuner -
TV
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 here -
Geography
-
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 here -
Emulator
-
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 specScreensaver -
Security
-
— do not use, not part of upstream specSystemSetup -
Telephony
— 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 applets -
Archiving
with allowed additional keywordCompression
-
Calculator
-
Clock
-
Compression
-
— do not use, not part of upstream specDesktopUtility -
FileTools
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 here -
Maps
-
— 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 belowWebUtility -
X-SUSE-TimeUtility
— SUSE specific, not upstreamable -
X-SUSE-WebUtility
— SUSE specific, not upstreamable -
X-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 below, 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 below 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.
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. Also note, that the error message from brp-30-desktop refers to a web page about macros, instead of pointing here.