#desktop #entries #xdg #execute #command-line-tool

desk-exec

Library to execute the programs defined in XDG desktop entries

9 releases

new 0.2.2 Nov 7, 2024
0.2.1 Jul 13, 2024
0.1.5 Jul 7, 2024
0.1.2 Jun 30, 2024

#430 in Unix APIs


Used in desk-exec-bin

Unlicense

11KB
107 lines

Desk-exec

Execute programs defined in XDG desktop entries directly from the command line.

Allows for substring pattern based searching.

Usage

Execute a desktop entry

desk-exec <PROGRAM_NAME_OR_SUBSTRING>

Execute a desktop entry and detach it from the terminal

desk-exec --detach <PROGRAM_NAME_OR_SUBSTRING>

Execute a custom desktop entry

You may want to execute a program with extra arguments or behaviour. To do this, you can create a .desktop file at the default $HOME/.local/share/applications or a custom directory set in the configuration file.

Entries found in directories specified in the configuration file will take precedence over entries in the user applications folder, which takes precedence over the system applications folder.

# Executes the first match found
desk-exec --first-only <PROGRAM_NAME_OR_SUBSTRING>

Library

Desk-exec provides a Rust API for executing desktop entries.

Documentation can be found here.

Configuration

A default configuration file is generated at $HOME/.config/desk-exec/desk_exec.toml.

[search]
# Toggles the searching of the default XDG data directories
xdg_default_dirs = true

# List of custom search directories in order of precedence
dirs = []

Installation

Currently, binaries for x86_64 are the only ones provided.

ArchLinux

Desk-exec can be installed using your favorite AUR helper with any of the following packages.

paru -S (desk-exec, desk-exec-bin, desk-exec-git)

Releases

Binary tar-balls can be found on the releases page.

The dist folder will contain any extra stuff like shell completions and man page entries.

Cargo

Desk-exec can also be built from source or installed with cargo from crates.io.

# Binary
cargo install desk-exec-bin

# Library
cargo add desk-exec

Contributing

If you have any suggestions or problems, please submit an issue. If you would like to contribute code, pull requests are welcome.

License

This project is licensed under the Unlicense license.

Dependencies

~13–25MB
~137K SLoC