Application Launcher

July 31, 2026 ยท View on GitHub

An OVOS skill that launches and closes applications on the Linux desktop by voice.

NOTE: This skill works only on Linux desktop environments.

Install

pip install ovos-skill-application-launcher

About

The skill scans the standard directories for .desktop files. It reads application names and execution commands from these files.

Scanned folders:

  • /usr/share/applications/
  • /usr/local/share/applications/
  • ~/.local/share/applications/

Examples

  • "Open Volume Control"
  • "Launch Firefox"
  • "Close Firefox"

Multiple instances of the same application

On Wayland systems, window control is not available. The skill closes apps only by ending running processes.

On X systems, the launcher closes windows before ending processes, if wmctrl is on your system.

This gives more granular control. You can manage multiple instances of an application, such as several Firefox windows, individually, even if they share the same PID.

If several processes with different PIDs match an application, the skill closes only the most recent one by default. You can turn on the old behavior, which ends all matching processes instead.

Configuration via settings.json

To customize the behavior of the Application Launcher skill, you can modify the following options in the settings.json file:

OptionTypeDefault ValueDescription
aliasesDict[str, List[str]]{"kcalc": ["calculator"]}Defines application aliases. Use application names from the .desktop file as keys and a list of speech-friendly names as values.
user_commandsDict[str, str]{}User-defined application commands. Map application names to their corresponding bash commands.
threshfloat0.85The threshold for string matching. Lower values will allow more lenient matches for application names.
skip_categoriesList[str]["Settings", "ConsoleOnly", "Building"]Categories in desktop files that exclude application from being considered.
skip_keywordsList[str][]Keywords in desktop files that exclude application from being considered.
target_categoriesList[str][]Categories in desktop files required for application to be considered.
target_keywordsList[str][]Keywords in desktop files required for application to be considered.
blacklistList[str][]List of applications to ignore during scanning (application names from the .desktop file).
require_iconboolTrueIf set to True, only include applications that have an icon defined in their .desktop file.
require_categoriesboolTrueIf set to True, only include applications that have at least one category defined in their .desktop file.
terminate_allboolFalseIf True, will terminate all matching processes when closing applications.
shellboolFalseIf True, allows commands to be executed in a shell environment.
disable_window_managerboolFalseIf True, ignores wmctl and exclusively uses running processes for managing apps

eg.

{
  "aliases": {
    "kcalc": ["calculator"]
  },
  "thresh": 0.85,
  "skip_categories": ["Settings", "ConsoleOnly", "Building"],
  "terminate_all": true
}

Category

Productivity

Tags

#desktop #desktop-launch #desktop-launcher

License

Apache-2.0