Skip to main content

A Python package for interacting with Gnome search providers without using Gnome Shell

Project description

PyGnomeSearchClient

PyGnomeSearchClient is a Python package for interacting with Gnome search providers outside the Gnome Shell environment. This package is targeted mostly at users of compositors with custom widgets, especially Ignis since that's what I currently use.

Rationale

Gnome search providers provide a simple-to-use API for searching various apps on the system but is currently limited to use on Gnome Shell. Even without Gnome Shell installed or running, most apps that provide search providers still register their search provider interfaces on DBus and still place their search configuration files in deterministic places, meaning that a different app could interact with them. This package aims to create a wrapper around the DBus calls used to interact with the providers.

Gnome search providers are fairly widely used. On my system, the installed search providers are:

Any of these, in isolation, could be easily coded into a desktop UI framework, but maintaining dozens of different search providers becomes taxing. Additionally, adding a new provider does not mean changing your dotfiles at all. Rolling your own search provider is also fairly simple, requiring only that a DBus service be registered and a config file be placed in some location.

Usage

TODO

Documentation

Gnome search providers place an ini file in one of a number of locations, generally /usr/share/gnome-shell/search-providers if installed globally. The file has the structure:

[Shell Search Provider]
DesktopId=xxx.desktop
BusName=xxx.SearchProvider2 (generally)
ObjectPath=/xx/xxx/SearchProvider
Version=2

The DBus interface is described by Gnome here, but the gist of it is that, under the bus name above, providers register methods GetInitialResultSet, GetSubsearchResultSet, GetResultMetas, ActivateResult, and LaunchSearch. This package provides wrappers for these methods and collects search providers while optionally maintaining state information.

Contributing

Please open an issue for any bugs or feature requests. If you know Python and PyGObject, feel free to open a PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnomesearchclient-0.1.1.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gnomesearchclient-0.1.1-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file gnomesearchclient-0.1.1.tar.gz.

File metadata

  • Download URL: gnomesearchclient-0.1.1.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gnomesearchclient-0.1.1.tar.gz
Algorithm Hash digest
SHA256 794bcc53a8556487b0a634ab925490fae2a5a65daa51e0737fd4e58acfbaedd6
MD5 e0aef964547ee70120261c53fb9fd17a
BLAKE2b-256 9978849595901a58dfd8a46cf1f7ef7df11664ff8234cf8399f7bfebe677994a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gnomesearchclient-0.1.1.tar.gz:

Publisher: python-publish.yml on whipped-cream/PyGnomeSearchClient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gnomesearchclient-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gnomesearchclient-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2174f6416331646b538dde42a2b327ebd670a043ffa21d6cc4152192429b17df
MD5 cc1075be8da65991e55694f9f9fea1f8
BLAKE2b-256 f521b3180f5945337f7153f1f6a75bd3d7ca73af1982dfa0d6318ae391aa6f14

See more details on using hashes here.

Provenance

The following attestation bundles were made for gnomesearchclient-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on whipped-cream/PyGnomeSearchClient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page