Development/Tutorials/Desktop File: Difference between revisions

    From KDE TechBase
    Line 42: Line 42:
      desktop.path = /usr/share/applications
      desktop.path = /usr/share/applications
      desktop.files += your-app.desktop
      desktop.files += your-app.desktop
     
      '''INSTALLS += target''' desktop
      '''INSTALLS += target''' desktop



    Revision as of 16:45, 9 September 2011


    Development/Tutorials/Desktop File


    Desktop File
    Tutorial Series   Basics
    Previous   Session Management
    What's Next  
    Further Reading   the .desktop Free Desktop Spec;

    Desktop File

    In order for your application to show up in menus and/or to be automatically associated with mime types in file browsers, you need to provide a .desktop file like follows:

    [Desktop Entry]
    Type=Application
    Exec=your-app %u
    MimeType=application/x-your-mime-type;
    Icon=some-icon
    X-DocPath=yourapp/index.html
    Terminal=false
    Name=Your App
    GenericName=Some Generic Name
    Comment=Short Description Of Your App
    Categories=Qt;KDE;
    

    Take a look at the .desktop Free Desktop Spec to find our more about the key/value pairs above. It's important to pick a good set of Categories, see the spec for a list of valid values.

    Your project

    In your project you need to take care the .desktop file is distributed to the appropriate place.

    qmake based projects

    In case you are working on a qmake based project, add the following to your .pro file:

    target.path = /usr/local/bin
    desktop.path = /usr/share/applications
    desktop.files += your-app.desktop
    
    INSTALLS += target desktop
    

    Note that the bold strings above should be in your project anyway.

    An example .pro file can be found here. The related .desktop file can be found here.

    cmake based projects

    In case you are working on a cmake based project, add an install directive to your CMakeLists.txt file like this:

    install( PROGRAMS your-app.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
    

    An example CMakeLists.txt file can be found here. The corresponding .desktop file is here.