## GDesktopAppInfo

GDesktopAppInfo — Application information from desktop files

## Synopsis

    #include <gio/gdesktopappinfo.h>

                        GDesktopAppInfo;
    GDesktopAppInfo *   g_desktop_app_info_new_from_filename
                                                            (const char *filename);
    GDesktopAppInfo *   g_desktop_app_info_new_from_keyfile (GKeyFile *key_file);
    GDesktopAppInfo *   g_desktop_app_info_new              (const char *desktop_id);
    const char *        g_desktop_app_info_get_filename     (GDesktopAppInfo *info);
    gboolean            g_desktop_app_info_get_is_hidden    (GDesktopAppInfo *info);
    void                g_desktop_app_info_set_desktop_env  (const char *desktop_env);

## Object Hierarchy

      GObject
       +----GDesktopAppInfo

## Implemented Interfaces

GDesktopAppInfo implements GAppInfo.

## Description

GDesktopAppInfo is an implementation of GAppInfo based on desktop files.

Note that `<gio/gdesktopappinfo.h>` belongs to the UNIX-specific GIO interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config file when using it.

## Details

### GDesktopAppInfo

    typedef struct _GDesktopAppInfo GDesktopAppInfo;

Information about an installed application from a desktop file.

### g_desktop_app_info_new_from_filename ()

    GDesktopAppInfo *   g_desktop_app_info_new_from_filename
                                                            (const char *filename);

Creates a new GDesktopAppInfo.

`filename` : | the path of a desktop file, in the GLib filename encoding
Returns : | a new GDesktopAppInfo or `NULL` on error.

### g_desktop_app_info_new_from_keyfile ()

    GDesktopAppInfo *   g_desktop_app_info_new_from_keyfile (GKeyFile *key_file);

Creates a new GDesktopAppInfo.

`key_file` : | an opened GKeyFile
Returns : | a new GDesktopAppInfo or `NULL` on error.

Since 2.18

### g_desktop_app_info_new ()

    GDesktopAppInfo *   g_desktop_app_info_new              (const char *desktop_id);

Creates a new GDesktopAppInfo based on a desktop file id.

A desktop file id is the basename of the desktop file, including the .desktop extension. GIO is looking for a desktop file with this name in the `applications` subdirectories of the XDG data directories (i.e. the directories specified in the `XDG_DATA_HOME` and `XDG_DATA_DIRS` environment variables). GIO also supports the prefix-to-subdirectory mapping that is described in the Menu Spec (i.e. a desktop id of kde-foo.desktop will match `/usr/share/applications/kde/foo.desktop`).

`desktop_id` : | the desktop file id
Returns : | a new GDesktopAppInfo, or `NULL` if no desktop file with that id

### g_desktop_app_info_get_filename ()

    const char *        g_desktop_app_info_get_filename     (GDesktopAppInfo *info);

When `info` was created from a known filename, return it. In some situations such as the GDesktopAppInfo returned from `g_desktop_app_info_new_from_keyfile()`, this function will return `NULL`.

`info` : | a GDesktopAppInfo
Returns : | The full path to the file for `info`, or `NULL` if not known.

Since 2.24

### g_desktop_app_info_get_is_hidden ()

    gboolean            g_desktop_app_info_get_is_hidden    (GDesktopAppInfo *info);

A desktop file is hidden if the Hidden key in it is set to True.

`info` : | a GDesktopAppInfo.
Returns : | `TRUE` if hidden, `FALSE` otherwise.

### g_desktop_app_info_set_desktop_env ()

    void                g_desktop_app_info_set_desktop_env  (const char *desktop_env);

Sets the name of the desktop that the application is running in. This is used by `g_app_info_should_show()` to evaluate the `OnlyShowIn` and `NotShowIn` desktop entry fields.

The Desktop Menu specification recognizes the following:

GNOME
KDE
ROX
XFCE
Old

Should be called only once; subsequent calls are ignored.

`desktop_env` : | a string specifying what desktop this is