lnchr 0.2.2

A fuzzy terminal app launcher
# lnchr

A fast, lightweight fuzzy launcher for your terminal.

Other launchers are often either too complex to configure, have much styling
in the way, or simply weren't fast enough. lnchr aims to be none of
that — minimal, no config, fast — and runs directly from your terminal emulator.

## Modes

The `run` mode scans `PATH` for executables.
The `drun` mode scans XDG data directories for `.desktop` files,
respecting fields like `Terminal`, `TryExec`, `NoDisplay`, and `Hidden`.

For desktop entries that require a terminal (`Terminal=true`), lnchr
looks for a terminal emulator by checking the `-T` flag first, then
the `TERMINAL` environment variable, and finally falls back to
common terminals.

## Usage

In order to use it like a normal app launcher you can bind it to a key and define rules.  
For example, in Hyprland:

```lua
hl.bind(mainMod .. " + SPACE", hl.dsp.exec_cmd("alacritty --class=lnchr -e lnchr drun -T alacritty"))
hl.bind(mainMod .. " + SHIFT + SPACE", hl.dsp.exec_cmd("alacritty --class=lnchr -e lnchr run"))

hl.window_rule({
    name = "floating lnchr",
    match = { class = "lnchr" },
    float = true,
})
```

## Installation

### NixOS

This repo can be added as a input of the flake.nix and the package installed like this:

```nix
{
  inputs = {
    lnchr.url = "git+https://codeberg.org/paul-hartwich/lnchr";
  };
}
```

```nix
{ pkgs, ... }:
{
  home.packages = with pkgs; [
    inputs.lnchr.packages.x86_64-linux.lnchr
  ];
};
```

### Cargo

In order to install the package with cargo, just run:

```bash
cargo install lnchr
```

## License

MIT License - see [LICENSE](LICENSE) file.