Files
astal/docs/libraries/apps.md
2024-09-11 13:30:51 +00:00

1.9 KiB

Apps

Library and CLI tool for querying and launching applications that have a corresponding .desktop file.

Installation

  1. install dependencies

:::code-group

sudo pacman -Syu meson vala json-glib gobject-introspection
sudo dnf install meson gcc valac json-glib-devel gobject-introspection-devel
sudo apt install meson valac libjson-glib-dev gobject-introspection

:::

  1. clone repo
git clone https://github.com/aylur/astal.git
cd astal/lib/apps
  1. install
meson setup build
meson install -C build

:::tip Most distros recommend manual installs in /usr/local, which is what meson defaults to. If you want to install to /usr instead which most package managers do, set the prefix option:

meson setup --prefix /usr build

:::

Usage

You can browse the Apps reference.

CLI

astal-apps --help

Library

:::code-group

import Apps from "gi://AstalApps"

const apps = new Apps.Apps({
    includeEntry: true,
    includeExecutable: true,
})

print(apps.fuzzy_query("spotify")
    .map(app => app.name)
    .join("\n"))
# Not yet documented, contributions are appreciated
-- Not yet documented, contributions are appreciated
// Not yet documented, contributions are appreciated

:::

:::info The fuzzy query uses Levenshtein distance. I am not a mathematician, but if you know how to reimplement the logic of fzf to make it better feel free to open PRs. :::