4.5 KiB
Installing spmenu
This article goes through compiling spmenu from source code.
Existing packages
Note that I offer spmenu packages for both Arch and Gentoo. The Gentoo packages
(ebuilds) can be had from my overlay.
The Arch packages can be found here,
and can be installed using pacman -U /path/to/package
. Alternatively you can
add my full Arch repository if you want.
If you're using any other distribution or operating system, you may have to
build it yourself if the distro repositories do not contain spmenu. This wiki page
is dedicated to installation instructions. Do note that these instructions are
always going to be accurate for the latest spmenu version from Git, and not
any release version. For exact instructions, you may want to see the included
README.md
file bundled with your chosen spmenu version.
Supported operating systems
This is not some arbitrary requirement. While it may run if it's not listed
here, I will not be providing support due to having a lack of experience with
said operating system. The main operating system that doesn't support
spmenu is Microsoft Windows. UNIX like operating systems are most likely to run
it. macOS is not officially supported as of 2.0, but it is possible to install
spmenu on macOS using Xquartz
. See Using spmenu on macOS.
- GNU/Linux distributions
- Some distros (such as NixOS or GNU Guix) may require specific instructions, if you're using those you know what you're doing.
- FreeBSD, OpenBSD, NetBSD
- There are likely more BSDs that can run spmenu, but I cannot support all of them. Try it and see if it works. If it doesn't please try and fix it. You know more about the BSDs than I do.
- If you use FreeBSD, see Using spmenu on FreeBSD.
Dependencies
spmenu has several dependencies, but most of them are optional.
- wayland-client
- For Wayland support, which is optional if X11 support is enabled.
- wayland-scanner
- For Wayland support, which is optional if X11 support is enabled.
- wayland-protocols
- For Wayland support, which is optional if X11 support is enabled.
- xkbcommon
- For Wayland support, which is optional if X11 support is enabled.
- libX11
- For X11 support, which is optional if Wayland support is enabled.
- libXrender
- For X11 support, which is optional if Wayland support is enabled.
- imlib2
- Used for image support, can be disabled during compile time.
- libXinerama
- Used for multi-monitor support if X11 is enabled, can be disabled during compile time.
- OpenSSL
- Used to calculate MD5 of images if image support is enabled, can be disabled during compile time.
- pango
- cairo
- libconfig
- Can be disabled if you don't want/need config file support during compile time.
- meson
- Used to compile spmenu, not optional unless you're experienced with build systems.
Compiling spmenu
You can get spmenu from git or from a release tarball. Most users will prefer Git, due to the ease of getting updates, but it may come at a stability cost. Git users get the latest features right away.
This is ultimately a choice you will have to make, and as a developer I definitely prefer using Git over a tarball. It should be noted that spmenu does not really require modifying the source code any unlike dmenu.
If you went with the tarball approach, you can download the signature
as well if you want to verify it hasn't been tampered with. You can skip
this though if you want. However you need to unpack it, and from the command-line
this can be done using tar -xpvf /path/to/tarball
.
Now it's time to compile spmenu and install it. While the instructions in the README try to teach you how to use the build system called meson, we're going to just do the installation and not think much about it. If you want to truly understand what you're doing, you may refer to the README documentation.
Run meson setup build
to set up the build itself. Now you can run cd build
to
change directory into the build directory. Now, finally run meson install
to
install spmenu itself. Run this command as superuser/root. If you don't it will
attempt to use sudo
for authentication. If you want to compile spmenu but not
install spmenu, you can simply run ninja -C build
in the spmenu root directory.
That's it, now we're done. You can now use spmenu.
I recommend you follow Getting Started if you're new to spmenu.