thqmtakes its name from the arabic تحكم, pronounced tahakum, meaning control.
thqm is a nifty little HTTP server. It dynamically generates a web page menu based on the provided stdin and outputs any selections to stdout.
In a sense, it functions similarly to dmenu/rofi but as a HTTP servers.
This makes it very flexible and script friendly.
See the examples folder for some example scripts.
Installation
Manual
To compile and install manually from this repo, you'll need rust installed.
To compile the binary:
$ git clone https://github.com/loiccoyle/thqm-rs
$ cd thqm.rs
$ cargo build --release
The compiled binary will be located at ./target/release/thqm.
Just place this binary somewhere in your $PATH.
Cargo
$ cargo install thqm
Arch linux (AUR)
Using your favourite AUR helper:
$ paru -S thqm
Usage
CLI options
thqm has a few command line options, when in doubt see the --help.
$ thqm --help
Scripting
thqm will generate a web page based on the provided stdin, the selected entry will be printed to stdout.
For this behaviour to actually be useful, we'll need to do a bit of scripting.
A typical script will look something like this:
#!/bin/sh
# define the handler function, i.e. what each option should do.
| |
# ^ ^ ^ Pass user selections to the handler
# │ └ Forward script's options to thqm
# └ Provide the options to thqm through stdin
See the examples folder for some example scripts.
Styling
thqm comes with a few included menu styles, see the styles folder, they will be extracted to $XDG_DATA_DIR/thqm when thqm is first run.
You can add your own by following the same style structure as those already included.
Note: thqm uses tera templates to generate the menu.