# 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.