seekr-util 0.3.1

System search util for linux
seekr-util-0.3.1 is not a library.

seekr

System search util for linux

seekr-demo

Installation

cargo install seekr-util

Features

  • gtk-layer-shell allow the seekr window to be displayed as a layer of the desktop wlr-layer-shell-unstable-v1
  • file-indexer, built-in blazing fast file search powered by Tantivy. Configurable to include/exclude specific directories.
  • Lua plugins, extend the functionality of seekr by adding custom search engines and tools using the Lua programming language.

Requirements

Usage

Running seekr is as simple as

$ seekr

seekr can also be run silently by passing the --silent options. This will run seekr without open a window.

To stop the running instance:

$ seekr --stop

Configuration

On the first run of the app, configurations files will be generated into $XDG_CONFIG_HOME/seekr or $HOME/.config/seekr

Plugins

seekr supports Lua plugins to extend its functionality. Plugins are loaded from the plugins directory in your configuration folder (e.g., ~/.config/seekr/plugins).

A plugin is a Lua script that returns a table containing metadata and event handlers:

return {
    name = "my_plugin",
    api_version = 1,
    description = "A simple example plugin",
    triggers = { "command=/test" },
    onInput = function(term)
        seekr:log("my_plugin", "User typed: " .. term)
    end,
}

Available event handlers: onInput, onEnter, onActivate, onStartup, onExit.

The seekr global object provides several methods for plugins:

  • seekr:show_info_box(plugin_name, title, body)
  • seekr:show_image_grid(plugin_name, images, subtitle)
  • seekr:show_console(plugin_name, command)
  • seekr:exec(command)
  • seekr:read(command)

Contributing

You can contribute to the project in several ways:

  • Translating the app via the ./locales/app.yml file
  • Adding new functionalities to improve the tool
  • Suggesting new widgets for plugins to use