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.
xorg-xwayland
is a
dependency.If you’re using macOS you may want to consider looking at this wiki artic le for more information.
If you are on Arch GNU/Linux, you can add my repository
which includes spmenu
as well as other useful packages.
Then simply pacman -S spmenu
.
Or if you are on Gentoo GNU/Linux, you can add my overlay which
includes x11-misc/spmenu
as well as other useful packages.
Then simply emerge spmenu
.
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:
Gentoo: emerge dev-vcs/git
Arch: pacman -S git
Debian: apt-get 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.
Pull requests would be greatly appreciated for any of these issues!
XMoveResizeWindow()
as well as
mh += bh
and y += bh
for each added line.None discovered yet! :)
There’s a page dedicated to user scripts over on the wiki. Feel free to contribute and try scripts on there.
See the included man
page.
spmenu is licensed under the MIT license. See the included LICENSE file for more information!
spmenu has a wiki for more extensive documentation. Contributions to the wiki are appreciated!