2023-07-19 04:54:37 +02:00
|
|
|
# Installing spmenu
|
2023-06-06 22:00:51 +02:00
|
|
|
|
2023-06-20 10:37:55 +02:00
|
|
|
This article goes through compiling spmenu from source code.
|
|
|
|
|
|
|
|
## Existing packages
|
2023-06-06 22:00:51 +02:00
|
|
|
|
|
|
|
Note that I offer spmenu packages for both Arch and Gentoo. The Gentoo packages
|
|
|
|
(ebuilds) can be had from [my overlay](https://git.speedie.site/speedie/speedie-overlay).
|
2023-06-10 14:39:05 +02:00
|
|
|
The Arch packages can be found [here](https://ls.speedie.site/?b=releases%2Fspmenu),
|
2023-06-06 22:00:51 +02:00
|
|
|
and can be installed using `pacman -U /path/to/package`. Alternatively you can
|
|
|
|
add [my full Arch repository](https://git.speedie.site/speedie-aur) 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.
|
|
|
|
|
2023-06-20 10:37:55 +02:00
|
|
|
## Supported operating systems
|
2023-06-06 22:00:51 +02:00
|
|
|
|
|
|
|
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
|
2023-07-26 03:32:15 +02:00
|
|
|
spmenu on macOS using `Xquartz`. See [[Using spmenu on macOS]].
|
2023-06-06 22:00:51 +02:00
|
|
|
|
|
|
|
- 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.
|
2023-07-27 23:54:12 +02:00
|
|
|
|
|
|
|
## Compatibility
|
|
|
|
|
|
|
|
There are articles written regarding spmenu compatibility with specific
|
|
|
|
distributions and operating systems. Here are some of them.
|
|
|
|
|
|
|
|
- If you use FreeBSD, see [[Using spmenu on FreeBSD]].
|
|
|
|
- If you use Gentoo Linux, see [[Using spmenu on Gentoo]].
|
|
|
|
- If you use macOS, see [[Using spmenu on macOS]].
|
2023-06-06 22:00:51 +02:00
|
|
|
|
2023-06-20 10:37:55 +02:00
|
|
|
## Dependencies
|
2023-06-06 22:00:51 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2023-06-20 10:37:55 +02:00
|
|
|
## Compiling spmenu
|
2023-06-06 22:00:51 +02:00
|
|
|
|
|
|
|
You can get spmenu [from git](https://git.speedie.site/speedie/spmenu) or from
|
2023-06-10 14:39:05 +02:00
|
|
|
a [release tarball](https://ls.speedie.site/?b=releases%2Fspmenu).
|
2023-06-06 22:00:51 +02:00
|
|
|
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.
|
|
|
|
|
2023-07-27 23:54:12 +02:00
|
|
|
Run `meson setup build` to set up the build itself. If you want to specify some
|
|
|
|
specific options, you can pass those to meson. For example, to build spmenu without
|
|
|
|
Wayland support, run `meson setup build -Dwayland=false`.
|
|
|
|
|
|
|
|
**NOTE: If you want to set up spmenu again with different options, pass `--reconfigure`
|
|
|
|
to meson.**
|
|
|
|
|
|
|
|
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.
|
2023-06-06 22:00:51 +02:00
|
|
|
|
2023-07-27 23:54:12 +02:00
|
|
|
That's it, now we're done. You can now use spmenu and spmenu_run.
|
2023-06-06 22:00:51 +02:00
|
|
|
|
2023-07-27 23:54:12 +02:00
|
|
|
From here, it is recommended that you follow [[Getting Started]] if
|
|
|
|
you're new to spmenu.
|