API

get_xdg_data_dirs() list[str][source]

Get all XDG DATA DIRS

Returns:

The list of XDG data Dirs

Return type:

list[str]

get_icon_path(icon_name: str) str | None[source]

Get the path of a Icon

Parameters:

icon_name (str) -- The name of the Icon as found in the desktop entry

Returns:

The full path to the Icon. none if the Icon was not found.

Return type:

str | None

is_action_identifier_valid(identifier: str) bool[source]

Checks if a Action identifier is valid

Parameters:

identifier (str) -- The Identifier

Returns:

If the identifier is valid

Return type:

bool

is_custom_key_name_valid(name: str) bool[source]

Checks if the given name can be used for a custom key

Parameters:
  • identifier -- The name

  • name (str)

Returns:

If the name can be used

Return type:

bool

class ValidationMessageDict[source]

Defines the return type for get_validation_messages()

Error: list[str]
FutureError: list[str]
Warning: list[str]
Hint: list[str]
class InstallWithPortalResponse[source]

Defines the return type for install_with_portal()

Name: str
Icon: bytes
exception InstallWithPortalsNotAvailable[source]

Raised by install_with_portal() when the DynamicLauncher portal is not available

Return type:

None

exception InstallWithPortalError(message: str)[source]

Raised by install_with_portal() when an error occures

Parameters:

message (str)

Return type:

None

exception InstallWithPortalsCanceled[source]

Raised by install_with_portal() when the User canceled the Installation

Return type:

None

exception InvalidDesktopEntry[source]

This Exception is raised, when a invalid Desktop Entry is loaded

Return type:

None

class TranslatableKey[source]

Represents a Key in a Desktop Entry, that can be translated into different languages

default_text: str

The untranslated text

translations: dict[str, str]

The translations

get_translated_text() str[source]

Returns the text for the current system language

Returns:

The text

Return type:

str

load_section(section: dict[str, str], search_key: str) None[source]

Loads a section from a Desktop Entry. Only for internal use.

Parameters:
  • section (dict[str, str])

  • search_key (str)

Return type:

None

get_text(entry_key: str) str[source]

Returns the text for saving a Desktop Entry. only for internal use.

Parameters:

entry_key (str)

Return type:

str

clear() None[source]

Clear

Return type:

None

class TranslatableListKey[source]

Represents a List in a Desktop Entry, that can be translated into different languages

default_list: list[str]

The unstranslated list

translations: dict[str, list[str]]

The translated lists

load_section(section: dict[str, str], search_key: str) None[source]

Loads a section from a Desktop Entry. Only for internal use.

Parameters:
  • section (dict[str, str])

  • search_key (str)

Return type:

None

get_text(entry_key: str) str[source]

Returns the text for saving a Desktop Entry. only for internal use.

Parameters:

entry_key (str)

Return type:

str

clear() None[source]

Clear

Return type:

None

class DesktopAction[source]

Represents a Action in a Desktop Entry

Name: TranslatableKey

The Name Key

Icon: str | None

The Icon Key

Exec: str | None

The Exec Key

classmethod from_dict(action_section: dict[str, str])[source]

Load the Action from a Dict. Onyl used internaly.

Parameters:

action_section (dict[str, str])

get_text() str[source]

Converts the Action into a String

Return type:

str

get_icon_path() str | None[source]

Returns full Path to the Icon

Returns:

The full Path or None, if the Icon can't be found

Return type:

str | None

get_command(file_list: list[str] | None = None, url_list: list[str] | None = None) list[str][source]

Returns the command to start this action. Returns an empty list if the Exec Key is not set. Take a look at the tutorial for more information.

Parameters:
  • file_list (list[str] | None) -- A list of local files

  • url_list (list[str] | None) -- A list of URLs

Returns:

The command

Return type:

list[str]

class DesktopEntry[source]

Represents a Desktop Entry

Type: Literal['Application', 'Link', 'Directory']

The Type Key

Version: Literal['1.0', '1.1', '1.2', '1.3', '1.4', '1.5'] | None

The Version Key

Name: TranslatableKey

The Name Key

GenericName: TranslatableKey

The GenericName Key

NoDisplay: bool | None

The NoDisplay Key

Comment: TranslatableKey

The Comment Key

Icon: str | None

The Icon Key

Hidden: bool | None

The Hidden Key

OnlyShowIn: list[str]

The OnlyShowIn Key

NotShowIn: list[str]

The NotShowIn Key

DBusActivatable: bool | None

The DBusActivatable Key

TryExec: str | None

The TryExec Key

Exec: str | None

The Exec Key

Path: str | None

The Path Key

Terminal: bool | None

The Terminal Key

MimeType: list[str]

The MimeType Key

Categories: list[str]

The Categories Key

Implements: list[str]

The Implements Key

Keywords: TranslatableListKey

The Keywords Key

StartupNotify: bool | None

The StartupNotify Key

StartupWMClass: str | None

The StartupWMClass Key

URL: str | None

The URL Key

PrefersNonDefaultGPU: bool | None

The PrefersNonDefaultGPU Key

SingleMainWindow: bool | None

The SingleMainWindow Key

Actions: dict[str, DesktopAction]

The Actions

CustomKeys: dict[str, str]

The Keys starting with X-

file_path: str | None

The path to the .desktop file

desktop_id: str | None

The ID of the .desktop file

leading_comment: str | None

If you set this, the given Comment will be added at the top of the Desktop Entry. You can use it for stuff like 'Created with foo'.

is_valid() bool[source]

Returns, if the Desktop Entry is valid. desktop-file-validate needs to be installed.

Returns:

If the entry is valid

Return type:

bool

get_validation_messages() ValidationMessageDict[source]

Returns all messages from desktop-file-validate

Returns:

A dict which contains the validation messages

Return type:

ValidationMessageDict

should_show() bool[source]

Returns if Desktop Entry should be showed

Return type:

bool

should_show_in_menu() bool[source]

Returns if a dektop entry should be displayed in the menu

Return type:

bool

get_icon_path() str | None[source]

Returns the full path to the Icon

Return type:

str | None

get_working_directory() str[source]

Returns the working directory for this program. When the Path Key is set, the value of this Key is returned. If not, the Home directory is returned.

Returns:

The working directory

Return type:

str

get_command(file_list: list[str] | None = None, url_list: list[str] | None = None) list[str][source]

Returns the command to start this program. Returns an empty list if the Exec Key is not set. Take a look at the tutorial for more information.

Parameters:
  • file_list (list[str] | None) -- A list of local files

  • url_list (list[str] | None) -- A list of URLs

Returns:

The command

Return type:

list[str]

is_empty() bool[source]

Checks if the Desktop Entry is empty

Return type:

bool

get_text() str[source]

Returns the content of the Desktop Entry

Return type:

str

write_file(path: str | PathLike) None[source]

Writes a .desktop file

Parameters:

path (str | PathLike)

Return type:

None

install_with_portal(window_dentifier: str, icon: bytes, *, editable_name: bool = True, editable_icon: bool = False) InstallWithPortalResponse[source]

Installs the entry using the DynamicLauncher Portal. Take a look at the tutorial for more information.

Parameters:
  • window_dentifier (str) -- The Window Identifier

  • icon (bytes) -- The Icon

  • editable_name (bool) -- If the User should be able to edit the Name, defaults to True

  • editable_icon (bool) -- If the User should be able to edit the Icon, defaults to False

Raises:
Returns:

The name and the icon of the shortcut

Return type:

InstallWithPortalResponse

classmethod from_string(text: str) DesktopEntry[source]

Loads the content of a .desktop file from a string

Parameters:

text (str)

Return type:

DesktopEntry

classmethod from_file(path: str | PathLike) DesktopEntry[source]

Returns a Desktop Entry from the given file

Parameters:

path (str | PathLike)

Return type:

DesktopEntry

classmethod from_id(desktop_id: str) DesktopEntry | None[source]

Returns a Desktop Entry from the given id

Parameters:

desktop_id (str)

Return type:

DesktopEntry | None

static get_keywords() list[str][source]

Returns the list of Keywords of a Desktop Entry

Returns:

The list of Keys

Return type:

list[str]

class DesktopEntryCollection[source]

Represents a Collection of multiple Desktop Entries

desktop_entries: dict[str, DesktopEntry]

The desktop entries

load_file(path: str | PathLike) None[source]

Loads the given desktop entry file and adds it to the collection

Parameters:

path (str | PathLike) -- The path to the desktop entry

Return type:

None

load_directory(path: str | PathLike) bool[source]

Loads all desktop entries from the given directory

Parameters:

path (str | PathLike) -- The directory

Returns:

True if all desktop entries could be loaded, False if some couldn't be loaded

Return type:

bool

load_menu() bool[source]

Loads all desktop entries from the menu

Returns:

True if all desktop entries could be loaded, False if some couldn't be loaded

Return type:

bool

load_desktop() bool[source]

Loads all desktop entries files from the Desktop

Returns:

True if all desktop entries could be loaded, False if some couldn't be loaded

Return type:

bool

load_autostart() bool[source]

Loads all autostart entries

Returns:

True if all desktop entries could be loaded, False if some couldn't be loaded

Return type:

bool

get_entries_by_category(category: str) list[DesktopEntry][source]

Returns a list of all desktop entries that have the given category

Parameters:

category (str) -- The category

Returns:

The list of desktop entries

Return type:

list[DesktopEntry]

get_entries_by_mime_type(mime_type: str) list[DesktopEntry][source]

Returns a list of all desktop entries that can open the given MimeType

Parameters:

mime_type (str) -- The MimeType

Returns:

The list of desktop entries

Return type:

list[DesktopEntry]

get_visible_entries() list[DesktopEntry][source]

Returns a list of all desktop entries that should be shown to the User

Returns:

The list of desktop entries

Return type:

list[DesktopEntry]

get_menu_entries() list[DesktopEntry][source]

Returns a list of all desktop entries that should be shown in the Menu

Returns:

The list of desktop entries

Return type:

list[DesktopEntry]

get_entry_by_name(name: str, include_translations: bool = True) DesktopEntry | None[source]

Returns the entry with the given Name. Returns None if no Entry exists with this Name.

Parameters:
  • name (str) -- The Name

  • include_translations (bool) -- Search also the translations

Returns:

The Entry

Return type:

DesktopEntry | None