Pipemenu

June 7, 2026 ยท View on GitHub

Gnome (GTK4 + libadwaita) compatible dmenu alternative.

It is not application launcher. It accepts input from stdin, allows user to select desired entry, and returns that entry on stdout.

Usage

ls | pipemenu | xargs xdg-open

alt text

Help & options

pipemenu -h

Installation

Prebuilt binary

Navigate to Releases and download a released binary (pipemenu_vx.x.x_linux-64bit)

After that you need to:

  1. rename the binary to pipemenu
  2. make it executable: chmod +x pipemenu
  3. move it to a location included in your $PATH environment variable (for example: /usr/local/bin [requires sudo]. To check available paths use your terminal: echo $PATH)

NixOS/flakes

  1. Add flake input:
inputs = {
  pipemenu = {
    url = "github:soanvig/pipemenu";
  };
}
  1. Add package to your packages section (note: only x86_64-linux system is being built in flake):
environment.systemPackages = [
  inputs.pipemenu.packages.${system}.default
]

# or for home manager:
home.packages = [
  inputs.pipemenu.packages.${system}.default
]

Rust/Cargo

Install dependencies listed in Development section (cargo builds package on your system), and then:

cargo install pipemenu

Roadmap

See Issues

Development

pipemenu uses gtk4-rs therefore GTK building instructions and Adwaita building instructions apply.

Currently gtk4 and libadwaita development dependencies are required with versions matching what's defined in Cargo.toml.

If using NixOS to build proper binary to be run on other systems, the binary has to be patched: patchelf --set-interpreter /usr/lib64/ld-linux-x86-64.so.2 pipemenu