97 lines
4.4 KiB
Markdown
97 lines
4.4 KiB
Markdown
Compiling spmenu
|
|
================
|
|
|
|
### Existing packages
|
|
|
|
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).
|
|
The Arch packages can be found [here](https://ls.speedie.site/?b=releases%2Fspmenu),
|
|
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.
|
|
|
|
### 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`.
|
|
|
|
- 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.
|
|
|
|
### 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](https://git.speedie.site/speedie/spmenu) or from
|
|
a [release tarball](https://ls.speedie.site/?b=releases%2Fspmenu).
|
|
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.
|