spmenu logo

spmenu

What is spmenu?

spmenu is an X11 menu application which takes standard input, parses it, and lets the user choose an option and sends the selected option to standard output.

In addition to this, it also serves as a run launcher through the included shell script spmenu_run, which handles both $PATH listing, .desktop entries and file listing.

While spmenu is based on dmenu, and is also fully compatible with dmenu, spmenu introduces many new features which can be useful in shell scripting. There are way too many to list, but spmenu has a wiki which goes through features in more detail.

Dependencies

Installation

If you still need/want to manually compile, follow along with manual compilation.

Here we’re manually compiling spmenu. This is likely what you’ll want to do if you’re using any distribution but Arch or Gentoo.

Git is required to clone the repository, but you can also use releases. Those can be unpacked using tar -xpvf /path/to/spmenu-version.tar.gz.

To install Git:

You will also need the dependencies for spmenu. You’ll have to find those packages in your distribution repositories.

To clone the repository using Git:

git clone https://git.speedie.site/spmenu

cd spmenu/

Configure the build by running these commands:

mkdir -p build/ # Create a build/ directory, Meson will use this as the working directory

meson setup build # This will check to make sure all dependencies are found. If you're recompiling you may want to pass --reconfigure as an argument

Now, to build it run ninja -C build. If all went well you should have a binary in the build/ directory.

Finally, to install it all, run:

meson install -C build --destdir /usr # /usr may be overriden to /usr/local or anything else if you use macOS or simply want another destination directory

To generate documentation, which may be necessary if you’re pushing new changes to your Git repository, run scripts/make/generate-docs.sh in the current directory.

To generate a tarball, run scripts/make/generate-pkg.sh in the current directory. If you want to generate a Pacman package, run scripts/make/generate-pacman-pkg.sh instead.

See this wiki article for more information.

TODO

Pull requests would be greatly appreciated for any of these issues!

General

Unlikely, but maybe at some point in the distant future

Bugs

None discovered yet! :)

Scripts

There’s a page dedicated to user scripts over on the wiki. Feel free to contribute and try scripts on there.

More information

See the included man page.

License

spmenu is licensed under the MIT license. See the included LICENSE file for more information!

Wiki

spmenu has a wiki for more extensive documentation. Contributions to the wiki are appreciated!